ÜÜÜÜ ÜÜÜÜ
Û Û Û
ÛÜÜÜÜÜ ÜÜÜ Ü Ü ÜÜÜÜ ÜÜÜÜ ÛÜÜÜÛÜ Ü ÜÜÜ ÜÜÜÜÜ ÜÜÜÜÜÜ ÜÜÜÜÜ ÜÜÜÜ
Û Û Û Û Û Û Û Û Û Û Û Û ÛÜÜÜÛ ÛÜÜÜÜ Û ÛÜÜ ÛÜÜÜß
Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û
ßßßßßß ßßßßß ßßßß ß ß ßßßß ßßßßßß ßßßßß ß ß ßßßßß ß ßßßßß ß ß
Programming Information v0.90
January 29, 1995
Andr‚ Baresel - Craig Jackson
Copyright (c) 1995
==============================================================================
DISCLAIMER
------------------------------------------------------------------------------
ALL INFORMATION IN THIS DOCUMENT WAS OBTAINED FROM NON-CONFIDENTIAL, PUBLIC
DOMAIN, SOURCES AND LEGAL INVESTIGATION BY THE AUTHORS. APART FROM CASUAL
EXAMININATION OF THE SOUNDBLASTER OWNER'S MANUALS, ABSOLUTELY NO REFERENCE
WAS MADE TO CREATIVE LABS DOCUMENTATION INCLUDING, BUT NOT LIMITED TO,
SOFTWARE DEVELOPMENT KITS, PROGRAMMING NOTES, AND SOURCE CODE.
THIS DOCUMENT IS NEITHER GUARANTEED TO BE FIT FOR ANY PARTICULAR PURPOSE NOR
TO BE ENTIRELY CORRECT. LIABILITY RESTS WITH THE USER OF THE DOCUMENTATION
IF AND WHEN INFORMATION CONTAINED HEREIN RESULTS DIRECTLY OR INDIRECTLY IN
LOSS OF PROFITS, PRODUCTIVITY, OR SLEEP. ABSOLUTELY NO WARRANTIES OR
GUARANTIES, EITHER EXPRESSED OR IMPLIED, ACCOMPANY THIS DOCUMENT. THIS
DOCUMENT, ITS AUTHORS, AND CONTRIBUTORS CLAIM NO AFFILIATION WITH CREATIVE
LABS NOR DO THEY NECESSARILY ENDORSE ANY OF THE COMPANIES OR PRODUCTS
MENTIONED. THIS DOCUMENT IS FREELY REDISTRIBUTABLE ONLY IN ITS ORIGINAL
UNMODIFIED FORM AND PROVIDED NO DIRECT PROFIT IS MADE FROM ITS DISTRIBUTION.
ALL COPYRIGHTS AND TRADEMARKS BELONG TO THEIR RESPECTIVE OWNERS.
==============================================================================
SOUNDBLASTER MODELS
------------------------------------------------------------------------------
SoundBlaster 1.0
SoundBlaster 1.5
SoundBlaster 2.0
SoundBlaster MCV (MCA)
SoundBlaster Pro
SoundBlaster Pro2
SoundBlaster Pro Value Edition
SoundBlaster Pro MCV (MCA)
SoundBlaster 16
SoundBlaster 16 Basic Edition
SoundBlaster 16 Value Edition
SoundBlaster 16 ASP
SoundBlaster 16 MultiCD
SoundBlaster 16 MultiCD ASP
SoundBlaster 16 SCSI-2
SoundBlaster 16 SCSI-2 ASP
SoundBlaster AWE32
SoundBlaster AWE32 Value Edition
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SOUNDBLASTER MODEL ³ 8-BIT Hz (DAC) ³ 16-BIT Hz (DAC) º
º ³ MONO ³ MONO º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º SoundBlaster 1.x ³ 4000-22222 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 2.x ³ 4000-45454 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster Pro ³ 4000-45454 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 16 ³ 4000-45454 ³ 4000-45454 º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster AWE32 ³ 5000-45454 ³ 5000-45454 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SOUNDBLASTER MODEL ³ 8-BIT Hz (DAC) ³ 16-BIT Hz (DAC) º
º ³ STEREO ³ STEREO º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º SoundBlaster 1.x ³ N/A ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 2.x ³ N/A ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster Pro ³ 4000-22727 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 16 ³ 4000-45454 ³ 4000-45454 º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster AWE32 ³ 5000-45454 ³ 5000-45454 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SOUNDBLASTER MODEL ³ 8-BIT Hz (ADC) ³ 16-BIT Hz (ADC) º
º ³ MONO ³ MONO º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º SoundBlaster 1.x ³ 4000-11111 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 2.x ³ 4000-15151 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster Pro ³ 4000-45454 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 16 ³ 4000-45454 ³ 4000-45454 º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster AWE32 ³ 5000-45454 ³ 5000-45454 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SOUNDBLASTER MODEL ³ 8-BIT Hz (ADC) ³ 16-BIT Hz (ADC) º
º ³ STEREO ³ STEREO º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º SoundBlaster 1.x ³ N/A ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 2.x ³ N/A ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster Pro ³ 4000-22727 ³ N/A º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster 16 ³ 4000-45454 ³ 4000-45454 º
ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
º SoundBlaster AWE32 ³ 5000-45454 ³ 5000-45454 º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
==============================================================================
SOUNDBLASTER COMPATIBLES
------------------------------------------------------------------------------
??? AudioDrive 688
??? Laserwave Supra 16
??? MediaConcept Pro
Adaptec Audio Machine???
Addonics??? Sound Master
Add Tech Sound 2000
Advanced Gravis Gravis Ultrasound
Gravis Ultrasound MAX
Alpha Systems VR
ATI ATI Stereo F/X
AVM Technology AltraPro
Aztech Sound Galaxy???
Sound Galaxy BXII
Sound Galaxy BXII Extra
Sound Galaxy Basic 16
Sound Galaxy Basic 16 Extra
Sound Galaxy Nova 16
Sound Galaxy NXII
Sound Galaxy NX Pro
Sound Galaxy Orion 16
Sound Galaxy Pro???
Sound Galaxy Pro 16
Biostar??? MediaChips Audio Device 16 (7168VMD)
Bluepoint Sound FX 3000???
Cardinal Technologies Digital Sound Pro 16
Sound Pilot
Computer Peripherals ViVa Maestro 16
ViVa Maestro 16 VR
CPS AudioBlaster 1.0
AudioBlaster 1.5
AudioBlaster 2.0
AudioBlaster 2.5
AudioBlaster 4.0
Diamond Sonic Sound
Sonic Sound LX
DSP Solutions PORT*ABLE Sound Plus
Ensoniq Ensoniq Soundscape
Gallant Audio Plus True 16
Genoa Systems AudioBahn 16 Pro
IBM IBM Windsurfer
Kingston Technologies Omnivox
Logitech Inc. Soundman 16
Soundman Wave
Lyben Sound Card Basic
Sound Card 16 Stereo
MediaMagic OnMagic???
MediaTrix AudioTrix Pro
MediaVision Deluxe
Premium 3D
Premium 3D MultiCD
Premium 3D SCSI-2
Pro 3D
Pro Audio 16 Basic
Pro Audio Spectrum 16
Pro Audio Studio
Pro Sonic 16
MEI Premium 16 Sound Card
Microsoft Windows Sound System 2.0???
MultiWave Innovation Inc. AudioWave Platinum 16
Nu Reality Vivid 3D???
Oak Technologies Mozart-128
Orchid GameWave 32
Sound Producer
SoundWave 32
Paradise Audio Basic
Audio Professional
ProLink Computer Inc. SoundPlus
Prometheus Aria 16
Aria 16se
Reveal Sound FX/32 Wavetable (SC600)
Sigma Designs Reel Magic
Triumph Logistic Computers Audio Forge Professional
Trust Sound Expert 16 Deluxe
Turtle Beach Monte Carlo
Tropez
Yamaha Yamaha CBX-B1
Zoltrix TESS
==============================================================================
ENVIRONMENT VARIABLE
------------------------------------------------------------------------------
BLASTER=Aa Ii Dd Hh Pp Tt
Aa - Base Address 0210h, 0220h, 0230h, 0240h,
0250h, 0260h, 0280h
Ii - Interrupt Request 2, 3, 5, 7, 10
Dd - DMA Channel, 8-bit 0, 1, 3
Hh - DMA Channel, 16-bit 5, 6, 7
Pp - Base MIDI Address 0300h, 0330h
Tt - Model 1(1.x), 2(Pro), 3(2.0), 4(Pro2.0),
5(ProMCV), 6(16, AWE32)
NOTE: 16-bit DMA definition may actually refer to an 8-bit DMA alias.
==============================================================================
HARDWARE PORTS
------------------------------------------------------------------------------
02x00h C/MS 1-6 - Data Port Write SB Only
02x00h FM Music - Left Status Port Read SBPro
02x00h FM Music - Left Register Port Write SBPro
02x01h C/MS 1-6 - Register Port Write SB Only
02x01h FM Music - Left Data Register Write SBPro
02x02h C/MS7-12 - Data Port Write SB Only
02x02h FM Music - Right Status Port Read SBPro
02x02h FM Music - Right Register Port Write SBPro
02x03h C/MS7-12 - Register Port Write SB Only
02x03h FM Music - Right Data Register Write SBPro
02x04h Mixer - Register Port Write SBPro
02x05h Mixer - Data Register Read/Write SBPro
02x06h DSP - Reset Write SB
02x08h FM Music - Compatible Status Port Read SB
02x08h FM Music - Compatible Register Port Write SB
02x09h FM Music - Compatible Data Register Write SB
02x0Ah DSP - Read Data Read SB
02x0Ch DSP - Write Data or Command Write SB
02x0Ch DSP - Write Buffer Status Read SB
02x0Dh DSP - Timer Interrupt Clear Read SB16???
02x0Eh DSP - Data Available Status Read SB
02x0Eh DSP - IRQ Acknowledge, 8-bit Read SB
02x0Fh DSP - IRQ Acknowledge, 16-bit Read SB16
02x10h CD-ROM - Data Register Read SBPro
02x10h CD-ROM - Command Port Write SBPro
02x11h CD-ROM - Status Port Read SBPro
02x12h CD-ROM - Reset Write SBPro
02x13h CD-ROM - Enable Write SBPro
0388h AdLib - Status Port Read SB
0388h AdLib - Register Port Write SB
0389h AdLib - Data Register Write SB
038Ah Advanced AdLib - Status Port Read SB16
038Ah Advanced AdLib - Register Port Write SB16
038Bh Advanced AdLib - Data Register Write SB16
03x00h MPU-401 - Data Port Read/Write SB16???
03x01h MPU-401 - Status Port Read SB16???
03x01h MPU-401 - Command Port Write SB16???
0200h-0207h Joystick Varies SB
------------------------------------------------------------------------------
02x00h C/MS - Data Port (Voice 1-6) Write SB Only
DESCRIPTION
References currently selected C/MS voice 1-6 index register.
PROCEDURE
a) Write register index (02x01h)
b) Write register data (02x00h)
SEE ALSO
02x01h C/MS - Register Port (Voice 1- 6) Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x02h C/MS - Data Port (Voice 7-12) Write
------------------------------------------------------------------------------
02x00h FM Music - Left Status Port Read SBPro
DESCRIPTION
Categorizes left-channel synthesizer generated timer interrupts.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 2 Status (1 = Expired)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 1 Status (1 = Expired)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Global Timer Status (1 = Active )
NOTES
þ Global Timer Status will be active if either timer has expired.
þ Counter period of Timer 1 is 80æs, and Timer 2 is 230æs.
þ Synthesizer generated timer interrupts are signalled on IRQ0.
SEE ALSO
02x00h FM Music - Left Register Port Write
02x01h FM Music - Left Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x08h FM Music - Compat. Status Port Read
0338h AdLib - Status Port Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x02h FM Music - Right Status Port Read
------------------------------------------------------------------------------
02x00h FM Music - Left Register Port Write SBPro
DESCRIPTION
Selects register index into left-channel synthesizer data port (02x01h)
PROCEDURE
a) Write register index (02x00h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x01h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
SEE ALSO
02x00h FM Music - Left Status Port Read
02x01h FM Music - Left Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x08h FM Music - Compat. Register Port Write
0338h AdLib - Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x02h FM Music - Right Register Port Write
------------------------------------------------------------------------------
02x01h C/MS - Register Port (Voice 1-6) Write SB Only
DESCRIPTION
Selects register index into C/MS voice 1-6 data port (02x00h)
PROCEDURE
a) Write register index (02x01h)
b) Write register data (02x00h)
SEE ALSO
02x00h C/MS - Data Port (Voice 1- 6) Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x03h C/MS - Register Port (Voice 7-12) Write
------------------------------------------------------------------------------
02x01h FM Music - Left Data Register Write SBPro
DESCRIPTION
References currently selected left-channel synthesizer index register.
PROCEDURE
a) Write register index (02x00h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x01h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
SEE ALSO
02x00h FM Music - Left Status Port Read
02x00h FM Music - Left Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x09h FM Music - Compat. Data Register Write
0339h AdLib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x03h FM Music - Right Data Register Write
------------------------------------------------------------------------------
02x02h C/MS - Data Port (Voice 7-12) Write SB Only
DESCRIPTION
References currently selected C/MS voice 7-12 index register.
PROCEDURE
a) Write register index (02x03h)
b) Write register data (02x02h)
SEE ALSO
02x03h C/MS - Register Port (Voice 7-12) Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h C/MS - Data Port (Voice 1- 6) Write
------------------------------------------------------------------------------
02x02h FM Music - Right Status Port Read SBPro
DESCRIPTION
Categorizes right-channel synthesizer generated timer interrupts.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 2 Status (1 = Expired)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 1 Status (1 = Expired)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Global Timer Status (1 = Active )
NOTES
þ Global Timer Status will be active if either timer has expired.
þ Counter period of Timer 1 is 80æs, and Timer 2 is 230æs.
þ Synthesizer generated timer interrupts are signalled on IRQ0.
SEE ALSO
02x02h FM Music - Right Register Port Write
02x03h FM Music - Right Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
038Ah A. Adlib - Status Port Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Status Port Read
------------------------------------------------------------------------------
02x02h FM Music - Right Register Port Write SBPro
DESCRIPTION
Selects register index into right-channel synthesizer data port (02x03h)
PROCEDURE
a) Write register index (02x02h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x03h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the right speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
SEE ALSO
02x02h FM Music - Right Status Port Read
02x03h FM Music - Right Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
038Ah A. Adlib - Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Register Port Write
------------------------------------------------------------------------------
02x03h C/MS - Register Port (Voice 7-12) Write SB Only
DESCRIPTION
Selects register index into C/MS voice 7-12 data port (02x02h)
PROCEDURE
a) Write register index (02x03h)
b) Write register data (02x02h)
SEE ALSO
02x02h C/MS - Data Port (Voice 7-12) Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x01h C/MS - Register Port (Voice 1- 6) Write
------------------------------------------------------------------------------
02x03h FM Music - Right Data Register Write SBPro
DESCRIPTION
References currently selected right-channel synthesizer index register.
PROCEDURE
a) Write register index (02x02h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x03h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the right speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
SEE ALSO
02x02h FM Music - Right Status Port Read
02x02h FM Music - Right Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
038Bh A. Adlib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x01h FM Music - Left Data Register Write
------------------------------------------------------------------------------
02x04h Mixer - Register Port Write SBPro
DESCRIPTION
Selects register index into mixer data port (02x05h)
SELECTION BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Mixer Register Index bit 0 (SB16)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Mixer Register Index bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Mixer Register Index bit 4 (SB16)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Mixer Register Index bit 7-5 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PROCEDURE
a) Write mixer index (02x04h)
b) Read/write mixer data (02x05h)
NOTES
þ See complete mixer reference later in this document.
þ MediaVision 3D-series cards use this port for index and data output.
SEE ALSO
02x05h Mixer - Data Register Read/Write
------------------------------------------------------------------------------
02x05h Mixer - Data Register Read/Write SBPro
DESCRIPTION
References currently selected mixer index register.
PROCEDURE
a) Write mixer index (02x04h)
b) Read/write mixer data (02x05h)
NOTES
þ See complete mixer reference later in this document.
SEE ALSO
02x05h Mixer - Register Port Write
------------------------------------------------------------------------------
02x06h DSP - Reset Write SB
DESCRIPTION
Performs complete reset of DSP, terminating all pending operations.
PROCEDURE
a) Write 001h
b) Wait 3.3æs minimum
c) Write 000h
d) Wait 100æs maximum for DSP Data Available (02x0Eh)
e) Read 0AAh from DSP Read Data (02x0Ah)
NOTES
þ Reset of DSP disables speaker (see DSP command 0D3h).
------------------------------------------------------------------------------
02x08h FM Music - Compatible Status Port Read SB
DESCRIPTION
Categorizes left-channel synthesizer generated timer interrupts.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 2 Status (1 = Expired)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 1 Status (1 = Expired)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Global Timer Status (1 = Active )
NOTES
þ Global Timer Status will be active if either timer has expired.
þ Counter period of Timer 1 is 80æs, and Timer 2 is 230æs.
þ Synthesizer generated timer interrupts are signalled on IRQ0.
þ Alias for FM Music - Left Status Port (02x00h) on SBPro or higher.
SEE ALSO
02x08h FM Music - Compat. Register Port Write
02x09h FM Music - Compat. Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Status Port Read
------------------------------------------------------------------------------
02x08h FM Music - Compatible Register Port Write SB
DESCRIPTION
Selects register index into left-channel synthesizer data port (02x09h)
PROCEDURE
a) Write register index (02x08h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x09h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Left Register Port (02x00h) on SBPro or higher.
SEE ALSO
02x08h FM Music - Compat. Status Port Read
02x09h FM Music - Compat. Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Register Port Write
------------------------------------------------------------------------------
02x09h FM Music - Compatible Data Register Write SB
DESCRIPTION
References currently selected left-channel synthesizer index register.
PROCEDURE
a) Write register index (02x08h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (02x09h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Left Data Register (02x01h) on SBPro or higher.
SEE ALSO
02x08h FM Music - Compat. Status Port Read
02x08h FM Music - Compat. Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x01h FM Music - Left Data Register Write
------------------------------------------------------------------------------
02x0Ah DSP - Read Data Read SB
DESCRIPTION
Input port for DSP data byte reads.
PROCEDURE
a) Loop until bit 7 = 1 of DSP Data Available Status (02x0Eh read)
b) Input byte from DSP Read Data port (02x0Ah read)
NOTES
þ Hard system resets occasionally cause some DSPs to leave an
extraneous data byte on the bus (typically 0AAh). Perform
an explicit DSP reset at application startup to correct for this.
SEE ALSO
02x0Eh DSP - Data Available Status Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x0Ch DSP - Write Data or Command Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x06h DSP - Reset Write
----------------------------------------------------------------------------
02x0Ch DSP - Write Data or Command Write SB
DESCRIPTION
Output port for DSP command and data byte writes.
PROCEDURE
a) Loop until bit 7 = 0 of DSP Write Buffer Status (02x0Ch read)
b) Output byte to DSP Write Data or Command port (02x0Ch write)
SEE ALSO
02x0Ch DSP - Write Buffer Status Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x0Ah DSP - Read Data Read
------------------------------------------------------------------------------
02x0Ch DSP - Write Buffer Status Read SB
DESCRIPTION
Indicates whether or not DSP is ready to receive data through
the DSP Write Data or Command port (02x0Ch write).
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³[6]³[5]³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (?)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Write Buffer Status (0 = Ready)
PROCEDURE
a) Loop until bit 7 = 0 of DSP Write Buffer Status (02x0Ch read)
b) Output byte to DSP Write Data or Command port (02x0Ch write)
SEE ALSO
02x0Ch DSP - Write Data or Command Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x0Eh DSP - Data Available Status Read
------------------------------------------------------------------------------
02x0Dh DSP - Timer Interrupt Clear Read SB16???
???
------------------------------------------------------------------------------
02x0Eh DSP - Data Available Status Read SB
DESCRIPTION
Indicates whether or not DSP has pending data to be read through
the DSP Read Data port (02x0Ah read).
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³[6]³[5]³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (?)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Read Status (1 = Ready)
PROCEDURE
a) Loop until bit 7 = 1 of DSP Data Available Status (02x0Eh read)
b) Input byte from DSP Read Data port (02x0Ah read)
SEE ALSO
02x0Ah DSP - Read Data Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x0Ch DSP - Write Buffer Status Read
------------------------------------------------------------------------------
02x0Eh DSP - IRQ Acknowledge, 8-bit Read SB
DESCRIPTION
Acknowledges an IRQ signalled by an 8-bit DSP operation.
PROCEDURE
a) IRQ: Read from IRQ Acknowledge, 8-bit port (02x0Eh)
b) IRQ: Perform Generic EOI (020h) to appropriate PICs
NOTES
þ Reflects correct DSP Data Available Status from IRQ.
SEE ALSO
02x0Fh DSP - IRQ Acknowledge, 16-bit Read
------------------------------------------------------------------------------
02x0Fh DSP - IRQ Acknowledge, 16-bit Read SB16
DESCRIPTION
Acknowledges an IRQ signalled by an 16-bit DSP operation.
PROCEDURE
a) IRQ: Read from IRQ Acknowledge, 16-bit port (02x0Fh)
b) IRQ: Perform Generic EOI (020h) to appropriate PICs
NOTES
þ Still used for aliased 16-bit DMA (see mixer register 081h)
SEE ALSO
02x0Eh DSP - IRQ Acknowledge, 8-bit Read
------------------------------------------------------------------------------
02x10h CD-ROM - Data Register Read SBPro
DESCRIPTION
Input port for active CD-ROM drive data and command response reads.
PROCEDURE
a) Loop until bit 2 = 0 or bit 1 = 0 of CD-ROM Status Port (02x11h read)
b) Input byte from CD-ROM Data Register port (02x10h read)
SEE ALSO
02x11h CD-ROM - Status Port Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x13h CD-ROM - Enable Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x10h CD-ROM - Command Port Write
------------------------------------------------------------------------------
02x10h CD-ROM - Command Port Write SBPro
DESCRIPTION
Output port for active CD-ROM drive command sequences.
PROCEDURE
???
NOTES
þ Command packets are seven bytes long.
þ Interrupts should be disabled during output.
SEE ALSO
02x13h CD-ROM - Enable Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x10h CD-ROM - Data Register Read
------------------------------------------------------------------------------
02x11h CD-ROM - Status Port Read SBPro
DESCRIPTION
Indicates whether or not active CD-ROM drive is waiting for command data,
has pending data available, or has prepared a command response.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Write Status (0 = Busy, v1.0+)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ Data Available (0 = Ready)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ Read Status (0 = Ready)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (1)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SEE ALSO
02x10h CD-ROM - Data Register Read
02x10h CD-ROM - Command Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x13h CD-ROM - Enable Write
------------------------------------------------------------------------------
02x12h CD-ROM - Reset Write SBPro
DESCRIPTION
Performs complete reset of active CD-ROM drive.
PROCEDURE
a) Write 001h
b) Wait 82æs??? minimum
c) Write 000h
NOTES
þ Reset will close open drive doors.
SEE ALSO
02x13h CD-ROM - Enable Write
------------------------------------------------------------------------------
02x13h CD-ROM - Enable Write SBPro
DESCRIPTION
Selects active CD-ROM drive on multiple drive systems.
PROCEDURE
???
SEE ALSO
02x10h CD-ROM - Data Register Read
02x10h CD-ROM - Command Port Write
02x11h CD-ROM - Status Port Read
02x12h CD-ROM - Reset Write
------------------------------------------------------------------------------
0388h AdLib - Status Port Read SB
DESCRIPTION
Categorizes left-channel synthesizer generated timer interrupts.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 2 Status (1 = Expired)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 1 Status (1 = Expired)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Global Timer Status (1 = Active )
NOTES
þ Global Timer Status will be active if either timer has expired.
þ Counter period of Timer 1 is 80æs, and Timer 2 is 230æs.
þ Synthesizer generated timer interrupts are signalled on IRQ0.
þ Alias for FM Music - Left Status Port (02x00h).
SEE ALSO
0388h AdLib - Register Port Write
0389h AdLib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Status Port Read
------------------------------------------------------------------------------
0388h AdLib - Register Port Write SB
DESCRIPTION
Selects register index into left-channel synthesizer data port (0389h)
PROCEDURE
a) Write register index (0388h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (0389h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Left Register Port (02x00h).
SEE ALSO
0388h AdLib - Status Port Read
0389h AdLib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x00h FM Music - Left Register Port Write
------------------------------------------------------------------------------
0389h AdLib - Data Register Write SB
DESCRIPTION
References currently selected left-channel synthesizer index register.
PROCEDURE
a) Write register index (0388h)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (0389h)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Left Data Register (02x01h).
SEE ALSO
0388h AdLib - Status Port Read
0388h AdLib - Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x01h FM Music - Left Data Register Write
------------------------------------------------------------------------------
038Ah Advanced AdLib - Status Port Read SB16
DESCRIPTION
Categorizes right-channel synthesizer generated timer interrupts.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 2 Status (1 = Expired)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timer 1 Status (1 = Expired)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Global Timer Status (1 = Active )
NOTES
þ Global Timer Status will be active if either timer has expired.
þ Counter period of Timer 1 is 80æs, and Timer 2 is 230æs.
þ Synthesizer generated timer interrupts are signalled on IRQ0.
þ Alias for FM Music - Right Status Port (02x02h) on SB16 or higher.
SEE ALSO
038Ah A. AdLib - Register Port Write
038Bh A. AdLib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x02h FM Music - Right Status Port Read
------------------------------------------------------------------------------
038Ah Advanced AdLib - Register Port Write SB16
DESCRIPTION
Selects register index into right-channel synthesizer data port (038Bh)
PROCEDURE
a) Write register index (038Ah)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (038Bh)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Right Register Port (02x02h) on SB16 or higher.
SEE ALSO
038Ah A. AdLib - Status Port Read
038Bh A. AdLib - Data Register Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x02h FM Music - Right Register Port Write
------------------------------------------------------------------------------
038Bh A. AdLib - Data Register Write SB16
DESCRIPTION
References currently selected right-channel synthesizer index register.
PROCEDURE
a) Write register index (038Ah)
b) Wait 3.3æs (0.0?æs OPL3)
c) Write register data (038Bh)
d) Wait 23æs (0.28æs OPL3)
NOTES
þ Original SoundBlaster Pros were equipped with dual OPL2 synthesizers,
connecting this channel to the left speaker exclusively; whereas later
models began using OPL3-compatible synthesizers, which send all output
to both the left and right speakers unless programmed to do otherwise.
þ Alias for FM Music - Right Data Register (02x03h) on SB16 or higher.
SEE ALSO
038Ah A. AdLib - Status Port Read
038Ah A. AdLib - Register Port Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02x03h FM Music - Right Data Register Write
------------------------------------------------------------------------------
03x00h MPU-401 - Data Port Read/Write SB16???
DESCRIPTION
Port for MPU-401 data transfer.
PROCEDURE (R)
a) Loop until bit 6 = 0 of MPU-401 Status Port (03x01h read)
b) Input byte from MPU-401 Data Register port (03x00h read/write)
PROCEDURE (W)
a) Loop until bit 7 = 0 of MPU-401 Status Port (03x01h read)
b) Output byte to MPU-401 Data Register port (03x00h read/write)
SEE ALSO
03x01h MPU-401 - Status Port Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
03x01h MPU-401 - Command Port Write
------------------------------------------------------------------------------
03x01h MPU-401 - Status Port Read SB16???
DESCRIPTION
Indicates whether or not MPU-401 has data pending or is awaiting data.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (?)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Data Read Register (0 = Ready)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Data Set Ready (0 = Ready)
SEE ALSO
03x00h MPU-401 - Data Port Read/Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
03x01h MPU-401 - Command Port Write
------------------------------------------------------------------------------
03x01h MPU-401 - Command Port Write SB16???
DESCRIPTION
Output port for MPU-401 command sequences.
PROCEDURE (W)
a) Loop until bit 7 = 0 of MPU-401 Status Port (03x01h read)
b) Output byte to MPU-401 Command Port (03x01h write)
SEE ALSO
03x01h MPU-401 - Status Port Read
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
03x00h MPU-401 - Data Port Read/Write
------------------------------------------------------------------------------
0201h Joystick Status Port Read/Write SB
DESCRIPTION
Status port for joystick button and position read.
JOYSTICK BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Joystick A: Switch X (1 = Reached)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ Joystick A: Switch Y (1 = Reached)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ Joystick B: Switch X (1 = Reached)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joystick B: Switch Y (1 = Reached)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joystick A: Button 1 (0 = Active )
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joystick A: Button 2 (0 = Active )
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joystick B: Button 1 (0 = Active )
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Joystick B: Button 2 (0 = Active )
PROCEDURE
a) Output byte to Joystick Status Port (0201h read/write) to reset timer
b) Loop until all directional bits charge in Joystick Status Port (0201h
read/write), use elapsed time waiting on each bit proportionally
==============================================================================
DSP COMMANDS
------------------------------------------------------------------------------
003h ASP Status SB16ASP
004h DSP Status (Obsolete) SB2.0-Pro2
004h ASP ??? SB16ASP
005h ASP ??? SB16ASP
010h Direct DAC, 8-bit SB
014h DMA DAC, 8-bit SB
016h DMA DAC, 2-bit ADPCM SB
017h DMA DAC, 2-bit ADPCM Reference SB
01Ch Auto-Initialize DMA DAC, 8-bit SB2.0
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM Reference SB2.0
020h Direct ADC, 8-bit SB
024h DMA ADC, 8-bit SB
028h Direct ADC, 8-bit (Burst) SB-Pro2
02Ch Auto-Initialize DMA ADC, 8-bit SB2.0
030h MIDI Read Poll SB
031h MIDI Read Interrupt SB
032h MIDI Read Timestamp Poll SB???
033h MIDI Read Timestamp Interrupt SB???
034h MIDI Read Poll + Write Poll (UART) SB2.0
035h MIDI Read Interrupt + Write Poll (UART) SB2.0???
037h MIDI Read Timestamp Interrupt + Write Poll (UART) SB2.0???
038h MIDI Write Poll SB
040h Set Time Constant SB
041h Set Sample Rate SB16
045h Continue Auto-Initialize DMA, 8-bit SB16
047h Continue Auto-Initialize DMA, 16-bit SB16
048h Set DMA Block Size SB2.0
074h DMA DAC, 4-bit ADPCM SB
075h DMA DAC, 4-bit ADPCM Reference SB
076h DMA DAC, 2.6-bit ADPCM SB
077h DMA DAC, 2.6-bit ADPCM Reference SB
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM Reference SB2.0
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM Reference SB2.0
080h Silence DAC SB
090h Auto-Initialize DMA DAC, 8-bit (High Speed) SB2.0-Pro2
098h Auto-Initialize DMA ADC, 8-bit (High Speed) SB2.0-Pro2
0A0h Disable Stereo Input Mode SBPro Only
0A8h Enable Stereo Input Mode SBPro Only
0Bxh/0Cxh Generic DAC/ADC DMA (16-bit, 8-bit) SB16
0D0h Halt DMA Operation, 8-bit SB
0D1h Enable Speaker SB
0D3h Disable Speaker SB
0D4h Continue DMA Operation, 8-bit SB
0D5h Halt DMA Operation, 16-bit SB16
0D6h Continue DMA Operation, 16-bit SB16
0D8h Speaker Status SB
0D9h Exit Auto-Initialize DMA Operation, 16-bit SB16
0DAh Exit Auto-Initialize DMA Operation, 8-bit SB2.0
0E0h DSP Identification SB2.0
0E1h DSP Version SB
0E3h DSP Copyright SBPro2???
0E4h Write Test Register SB2.0
0E8h Read Test Register SB2.0
0F0h Sine Generator SB
0F1h DSP Auxiliary Status (Obsolete) SB-Pro2
0F2h IRQ Request, 8-bit SB
0F3h IRQ Request, 16-bit SB16
0FBh DSP Status SB16
0FCh DSP Auxiliary Status SB16
0FDh DSP Command Status SB16
------------------------------------------------------------------------------
003h ASP Status SB16ASP
COMMAND <-STATUS
???
------------------------------------------------------------------------------
004h DSP Status (Obsolete) SB2.0-Pro2
COMMAND <-STATUS
DESCRIPTION
Retrieves information about pending DSP operations.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Speaker Status (1 = Active)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ Stereo ADC Status (1 = Active)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Direct ADC 8-bit Burst (1 = Active)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA DAC 2-bit ADPCM (1 = Active)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA DAC 2.6-bit ADPCM (1 = Active)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA DAC 4-bit ADPCM (1 = Active)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA DAC 8-bit (1 = Active)
NOTES
þ SoundBlaster 2.0 implements only bit 3 and 7.
þ SoundBlaster Pro models do not support bit 7.
SEE ALSO
0F1h DSP Auxiliary Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0FBh DSP Status
0FCh DSP Auxiliary Status
0FDh DSP Command Status
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D8h Speaker Status
------------------------------------------------------------------------------
004h ASP ??? SB16ASP
COMMAND->???
???
------------------------------------------------------------------------------
005h ASP ??? SB16ASP
COMMAND->DATAHIBYTE->DATALOBYTE
???
------------------------------------------------------------------------------
010h Direct DAC, 8-bit SB
COMMAND->SAMPLEBYTE
DESCRIPTION
Outputs single sample.
PROCEDURE
a) Send Direct DAC, 8-bit command (010h) and sample
b) Wait for correct timing
NOTES
þ Direct mode maximum sample rate is 23KHz.
SEE ALSO
020h Direct ADC, 8-bit
------------------------------------------------------------------------------
014h DMA DAC, 8-bit SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 8-bit DMA transfer.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 8-bit command (014h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = SAMPLES - 1
NOTES
þ Use command 0Cxh to avoid SoundBlaster 16 quantization errors.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Ch Auto-Initialize DMA DAC, 8-bit
090h Auto-Initialize DMA DAC, 8-bit (High Speed)
0Cxh Generic DAC/ADC DMA, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
017h DMA DAC, 2-bit ADPCM Reference
075h DMA DAC, 4-bit ADPCM Reference
077h DMA DAC, 2.6-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
024h DMA ADC, 8-bit
------------------------------------------------------------------------------
016h DMA DAC, 2-bit ADPCM SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 2-bit ADPCM DMA transfer with accumulated reference byte.
This operation uses 8-bit DMA mode.
PROCEDURE (after command 017h)
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 2-bit ADPCM command (016h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 3)/4
NOTES
þ Supports up to 11KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
017h DMA DAC, 2-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
074h DMA DAC, 4-bit ADPCM
076h DMA DAC, 2.6-bit ADPCM
------------------------------------------------------------------------------
017h DMA DAC, 2-bit ADPCM Reference SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 2-bit ADPCM DMA transfer with new reference byte. This
operation uses 8-bit DMA mode.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 2-bit ADPCM Reference command (017h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 3)/4 + 1
NOTES
þ Supports up to 11KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
016h DMA DAC, 2-bit ADPCM
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
075h DMA DAC, 4-bit ADPCM Reference
077h DMA DAC, 2.6-bit ADPCM Reference
------------------------------------------------------------------------------
01Ch Auto-Initialize DMA DAC, 8-bit SB2.0
COMMAND
DESCRIPTION
Initiates auto-initialize 8-bit DMA transfer.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 058h + channel)
f) Perform Auto-Initialize DMA DAC, 8-bit command (01Ch)
g) IRQ: Prepare next half of buffer (not always in handler)
h) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
i) Loop to G until complete
j) Perform Disable Speaker command (0D3h)
k) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
l) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
m) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
NOTES
þ Supports up to 23KHz (11.5KHz stereo???)
þ Exit auto-initialized mode by programming single-cycle DMA output or
with Exit Auto-Initialize DMA Operation, 8-bit (0DAh).
þ Use command 0Cxh to avoid SoundBlaster 16 quantization errors.
LENGTH = (SAMPLES + 1)/2 - 1
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
090h Auto-Initialize DMA DAC, 8-bit (High Speed)
0Cxh Generic DAC/ADC DMA, 8-bit
------------------------------------------------------------------------------
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM Reference SB2.0
COMMAND
DESCRIPTION
Initiates auto-initialize 2-bit ADPCM DMA transfer with reference byte.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 058h + channel)
f) Perform Auto-Initialize DMA DAC, 2-bit ADPCM command (01Fh)
g) IRQ: Prepare next half of buffer (not always in handler)
h) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
i) Loop to G until complete
j) Perform Disable Speaker command (0D3h)
k) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
l) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
m) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
NOTES
þ Exit auto-initialized mode by programming single-cycle DMA output or
with Exit Auto-Initialize DMA Operation, 8-bit (0DAh).
þ Ensoniq Soundscape does not support ADPCM.
SAMPLEBYTES = (SAMPLES + 3)/4 + 1
LENGTH = (SAMPLEBYTES + 1)/2 - 1
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
017h DMA DAC, 2-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM Reference
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM Reference
------------------------------------------------------------------------------
020h Direct ADC, 8-bit SB
COMMAND <-SAMPLEBYTE
DESCRIPTION
Inputs single sample.
PROCEDURE
a) Send Direct ADC, 8-bit command (020h)
b) Read sample
c) Wait for correct timing
NOTES
þ Direct mode maximum sample rate is 23KHz.
SEE ALSO
010h Direct DAC, 8-bit
------------------------------------------------------------------------------
024h DMA ADC, 8-bit SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 8-bit DMA transfer (record).
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 044h + channel)
e) Perform DMA ADC, 8-bit command (024h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = SAMPLES - 1
NOTES
þ SoundBlasters prior to SB16 return the first sample in direct mode.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02Ch Auto-Initialize DMA ADC, 8-bit
098h Auto-Initialize DMA ADC, 8-bit (High Speed)
0Cxh Generic DAC/ADC DMA, 8-bit
------------------------------------------------------------------------------
028h Direct ADC, 8-bit (Burst) SB-Pro2
COMMAND <-SAMPLEBYTE0...SAMPLEBYTEn
DESCRIPTION
???
PROCEDURE
???
NOTES
þ Terminate operation with DSP reset.
SEE ALSO
020h Direct ADC, 8-bit
------------------------------------------------------------------------------
02Ch Auto-Initialize DMA ADC, 8-bit SB2.0
COMMAND
DESCRIPTION
Initiates auto-initialize 8-bit DMA transfer (record).
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 054h + channel)
f) Perform Auto-Initialize DMA ADC, 8-bit command (02Ch)
g) IRQ: Prepare next half of buffer (not always in handler)
h) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
i) Loop to G until complete
j) Perform Disable Speaker command (0D3h)
k) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
l) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
m) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
NOTES
þ Supports up to 23KHz (11.5KHz stereo???)
þ Exit auto-initialized mode by programming single-cycle DMA output or
with Exit Auto-Initialize DMA Operation, 8-bit (0DAh).
þ Use command 0Cxh to avoid SoundBlaster 16 quantization errors.
LENGTH = (SAMPLES + 1)/2 - 1
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
098h Auto-Initialize DMA ADC, 8-bit (High Speed)
0Cxh Generic DAC/ADC DMA, 8-bit
------------------------------------------------------------------------------
030h MIDI Read Poll SB
COMMAND <-MIDICODE
DESCRIPTION
Reads MIDI code.
PROCEDURE
a) Send MIDI Read Poll command (030h)
b) Read MIDI code when available
NOTES
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
031h MIDI Read Interrupt
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
032h MIDI Read Timestamp Poll
033h MIDI Read Timestamp Interrupt
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
034h MIDI Read Poll + Write Poll (UART)
035h MIDI Read Interrupt + Write Poll (UART)
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
038h MIDI Write Poll
------------------------------------------------------------------------------
031h MIDI Read Interrupt SB
COMMAND {<-MIDICODE}
DESCRIPTION
Generates interrupt when MIDI code is available.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform MIDI Read Interrupt command (031h)
c) IRQ: Read MIDI code
d) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
e) Perform MIDI Read Interrupt command (031h) to terminate
NOTES
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
033h MIDI Read Timestamp Interrupt
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
035h MIDI Read Interrupt + Write Poll (UART)
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
030h MIDI Read Poll
-----------------------------------------------------------------------------
032h MIDI Read Timestamp Poll SB???
COMMAND <-TIMESTAMPLOBYTE<-TIMESTAMPMIDBYTE<-TIMESTAMPHIBYTE<-MIDICODE
DESCRIPTION
Reads MIDI code with timestamp.
PROCEDURE
a) Send MIDI Read Timestamp Poll command (032h)
b) Read timestamp and MIDI code when available
NOTES
þ Timestamp if 24-bit value containing the time since the last MIDI
command in milliseconds.
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
033h MIDI Read Timestamp Interrupt
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
------------------------------------------------------------------------------
033h MIDI Read Timestamp Interrupt SB???
COMMAND {<-TIMESTAMPLOBYTE<-TIMESTAMPMIDBYTE<-TIMESTAMPHIBYTE<-MIDICODE}
DESCRIPTION
Generates interrupt when MIDI code is available, includes timestamp.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform MIDI Read Interrupt with Timestamp command (033h)
c) IRQ: Read MIDI code with timestamp
d) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
e) Perform MIDI Read Interrupt with Timestamp command (033h) to terminate
NOTES
þ Timestamp if 24-bit value containing the time since the last MIDI
command in milliseconds.
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
032h MIDI Read Timestamp Poll
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
------------------------------------------------------------------------------
034h MIDI Read Poll + Write Poll (UART) SB2.0
COMMAND [->MIDICODE] [<-MIDICODE]
DESCRIPTION
Enables UART mode, where all DSP read/writes are interpreted as MIDI codes.
PROCEDURE
a) Send MIDI Read Poll + Write Poll (UART) command (034h)
b) Send and receive MIDI codes
c) Reset DSP to terminate
NOTES
þ Disable UART mode with DSP reset (port 02x06h)
þ Read/write status must still be checked (port 02x0Eh/02x0Ch)
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
030h MIDI Read Poll
038h MIDI Write Poll
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
035h MIDI Read Interrupt + Write Poll (UART)
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
------------------------------------------------------------------------------
035h MIDI Read Interrupt + Write Poll (UART) SB2.0???
COMMAND [->MIDICODE] {<-MIDICODE}
DESCRIPTION
Enables UART mode with interrupt, where all DSP writes are interpreted as
MIDI codes and interrupts are generated when a MIDI code is to be read.
PROCEDURE
a) Send MIDI Read Interrupt + Write Poll (UART) command (035h)
b) Send and receive MIDI codes (see command 031h)
c) Reset DSP to terminate
NOTES
þ Disable UART mode with DSP reset (port 02x06h)
þ Write buffer status must still be checked (port 02x0Ch)
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
034h MIDI Read Poll + Write Poll (UART)
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
031h MIDI Read Interrupt
------------------------------------------------------------------------------
037h MIDI Read Timestamp Interrupt + Write Poll (UART) SB2.0???
COMMAND [->MIDICODE]
{<-TIMESTAMPLOBYTE<-TIMESTAMPMIDBYTE<-TIMESTAMPHIBYTE<-MIDICODE}
DESCRIPTION
Enables UART mode with interrupt, where all DSP writes are interpreted as
MIDI codes and interrupts are generated when a timestamped MIDI code is
to be read.
PROCEDURE
a) Send MIDI Read Timestamp Interrupt + Write Poll (UART) command (037h)
b) Send and receive MIDI codes with timestamps (see command 033h)
c) Reset DSP to terminate
NOTES
þ Disable UART mode with DSP reset (port 02x06h)
þ Write buffer status must still be checked (port 02x0Ch)
þ SoundBlasters buffer up to 64bytes of MIDI data.
SEE ALSO
034h MIDI Read Poll + Write Poll (UART)
035h MIDI Read Interrupt + Write Poll (UART)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
038h MIDI Write Poll
------------------------------------------------------------------------------
038h MIDI Write Poll SB
COMMAND->MIDICODE
DESCRIPTION
Writes MIDI code.
PROCEDURE
a) Send MIDI Write Poll command (038h) and data
SEE ALSO
034h MIDI Read Poll + Write Poll (UART)
035h MIDI Read Interrupt + Write Poll (UART)
037h MIDI Read Timestamp Interrupt + Write Poll (UART)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
030h MIDI Read Poll
------------------------------------------------------------------------------
040h Set Time Constant SB
COMMAND->TIMEBYTE
DESCRIPTION
Sets sample rate through internal I/O transfer timer.
FORMULA
TimeConstant = 256 - (1000000 / (SampleChannels * SampleRate))
NOTES
þ For non-SoundBlaster Pro cards, always set SampleChannels equal to one.
SEE ALSO
041h Set Sample Rate
------------------------------------------------------------------------------
041h Set Sample Rate SB16
COMMAND->RATEHIBYTE->RATELOBYTE
DESCRIPTION
Sets sample rate.
NOTES
þ Sampling rate precision is truncated to nearest time constant.
þ Sampling rate is programmed independent of stereo or monaural modes.
SEE ALSO
040h Set Time Constant
------------------------------------------------------------------------------
045h Continue Auto-Initialize DMA, 8-bit SB16
COMMAND
DESCRIPTION
Continues a halted auto-initialized 8-bit DMA operation.
SEE ALSO
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0Cxh Generic DAC/ADC, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Ch Auto-Initialize DMA DAC, 8-bit
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM
02Ch Auto-Initialize DMA ADC, 8-bit
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM
090h Auto-Initialize DMA DAC, 8-bit (High Speed)
098h Auto-Initialize DMA ADC, 8-bit (High Speed)
------------------------------------------------------------------------------
047h Continue Auto-Initialize DMA, 16-bit SB16
COMMAND
DESCRIPTION
Continues a halted auto-initialized 16-bit DMA operation.
SEE ALSO
0D9h Exit Auto-Initialize DMA, 16-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0Bxh Generic DAC/ADC, 16-bit
------------------------------------------------------------------------------
048h Set DMA Block Size SB2.0
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Set DMA transfer size for auto-initialize and high speed modes.
SAMPLEBYTES = SAMPLES 8-bit
(SAMPLES-1 + 1)/2 + 1 4-bit ADPCM + Reference
(SAMPLES-1 + 2)/3 + 1 2.6-bit ADPCM + Reference
(SAMPLES-1 + 3)/4 + 1 2-bit ADPCM + Reference
LENGTH = SAMPLEBYTES - 1 (Single Cycle)
(SAMPLEBYTES + 1)/2 - 1 (Auto-Init )
NOTES
þ Length is always equal to the number of bytes to transfer minus one.
SEE ALSO
01Ch Auto-Initialize DMA DAC, 8-bit
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM
02Ch Auto-Initialize DMA ADC, 8-bit
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM
090h Auto-Initialize DMA DAC, 8-bit (High Speed)
098h Auto-Initialize DMA ADC, 8-bit (High Speed)
------------------------------------------------------------------------------
074h DMA DAC, 4-bit ADPCM SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 4-bit ADPCM DMA transfer with accumulated reference byte.
This operation uses 8-bit DMA mode.
PROCEDURE (after command 075h)
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 4-bit ADPCM command (074h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 1)/2
NOTES
þ Supports up to 12KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
074h DMA DAC, 4-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
016h DMA DAC, 2-bit ADPCM
076h DMA DAC, 2.6-bit ADPCM
------------------------------------------------------------------------------
075h DMA DAC, 4-bit ADPCM Reference SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 4-bit ADPCM DMA transfer with new reference byte. This
operation uses 8-bit DMA mode.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 4-bit ADPCM Reference command (075h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 1)/2 + 1
NOTES
þ Supports up to 12KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
075h DMA DAC, 4-bit ADPCM
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
017h DMA DAC, 2-bit ADPCM Reference
077h DMA DAC, 2.6-bit ADPCM Reference
------------------------------------------------------------------------------
076h DMA DAC, 2.6-bit ADPCM SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 2.6-bit ADPCM DMA transfer with accumulated reference byte.
This operation uses 8-bit DMA mode.
PROCEDURE (after command 077h)
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 2.6-bit ADPCM command (076h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 2)/3
NOTES
þ Supports up to 13KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
077h DMA DAC, 2.6-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
016h DMA DAC, 2-bit ADPCM
074h DMA DAC, 4-bit ADPCM
------------------------------------------------------------------------------
077h DMA DAC, 2.6-bit ADPCM Reference SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Initiates 2.6-bit ADPCM DMA transfer with new reference byte. This
operation uses 8-bit DMA mode.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Enable Speaker command (0D1h)
d) Setup DMA controller (mode = 048h + channel)
e) Perform DMA DAC, 2.6-bit ADPCM Reference command (077h)
f) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
g) Perform Disable Speaker command (0D3h)
LENGTH = (SAMPLES-1 + 2)/3 + 1
NOTES
þ Supports up to 13KHz on SoundBlaster 1.x
þ Ensoniq Soundscape does not support ADPCM.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
076h DMA DAC, 2.6-bit ADPCM
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
017h DMA DAC, 2-bit ADPCM Reference
075h DMA DAC, 4-bit ADPCM Reference
------------------------------------------------------------------------------
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM Reference SB2.0
COMMAND
DESCRIPTION
Initiates auto-initialize 4-bit ADPCM DMA transfer with reference byte.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 058h + channel)
f) Perform Auto-Initialize DMA DAC, 4-bit ADPCM command (07Dh)
g) IRQ: Prepare next half of buffer (not always in handler)
h) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
i) Loop to G until complete
j) Perform Disable Speaker command (0D3h)
k) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
l) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
m) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
NOTES
þ Exit auto-initialized mode by programming single-cycle DMA output or
with Exit Auto-Initialize DMA Operation, 8-bit (0DAh).
þ Ensoniq Soundscape does not support ADPCM.
SAMPLEBYTES = (SAMPLES + 1)/2 + 1
LENGTH = (SAMPLEBYTES + 1)/2 - 1
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
075h DMA DAC, 4-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM Reference
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM Reference
------------------------------------------------------------------------------
07Fh Auto-Initialize DMA DAC, 2.6-bit ADPCM Reference SB2.0
COMMAND
DESCRIPTION
Initiates auto-initialize 2.6-bit ADPCM DMA transfer with reference byte.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 058h + channel)
f) Perform Auto-Initialize DMA DAC, 2.6-bit ADPCM command (07Fh)
g) IRQ: Prepare next half of buffer (not always in handler)
h) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
i) Loop to G until complete
j) Perform Disable Speaker command (0D3h)
k) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
l) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
m) Perform Halt DMA Operation, 8-bit command (0D0h - for virtual speaker)
NOTES
þ Exit auto-initialized mode by programming single-cycle DMA output or
with Exit Auto-Initialize DMA Operation, 8-bit (0DAh).
þ Ensoniq Soundscape does not support ADPCM.
SAMPLEBYTES = (SAMPLES + 2)/3 + 1
LENGTH = (SAMPLEBYTES + 1)/2 - 1
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
077h DMA DAC, 2.6-bit ADPCM Reference
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Fh Auto-Initialize DMA DAC, 2-bit ADPCM Reference
07Dh Auto-Initialize DMA DAC, 4-bit ADPCM Reference
------------------------------------------------------------------------------
080h Silence DAC SB
COMMAND->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Outputs block of silent samples at current sample rate, and signals
IRQ when complete.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Silence DAC command (080h)
d) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
e) Remove IRQ handler (restore vector, restore PIC mask)
LENGTH = SAMPLES - 1
SEE ALSO
040h Set Time Constant
------------------------------------------------------------------------------
090h Auto-Initialize DMA DAC, 8-bit (High Speed) SB2.0-Pro2
COMMAND
DESCRIPTION
Initiates 8-bit DMA transfer (>23KHz).
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 058h + channel)
f) Perform Auto-Initialize DMA DAC, 8-bit (HighSpeed) command (090h)
g) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
h) Reset DSP (or terminate normally on SB16+)
NOTES
þ High speed mode ignores DSP commands during transfers (<SB16).
þ Use command 0Cxh to avoid SoundBlaster 16 quantization errors.
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Ch Auto-Initialize DMA DAC, 8-bit
0Cxh Generic DAC/ADC DMA, 8-bit
------------------------------------------------------------------------------
098h Auto-Initialize DMA ADC, 8-bit (High Speed) SB2.0-Pro2
COMMAND
DESCRIPTION
Initiates 8-bit DMA transfer (record, >23KHz).
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Perform Set DMA Block Size command (048h)
d) Perform Enable Speaker command (0D1h)
e) Setup DMA controller (mode = 054h + channel)
f) Perform Auto-Initialize DMA ADC, 8-bit (HighSpeed) command (098h)
g) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
h) Reset DSP (or terminate normally on SB16+)
NOTES
þ High speed mode ignores DSP commands during transfers (<SB16).
SEE ALSO
048h Set DMA Block Size
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
02Ch Auto-Initialize DMA ADC, 8-bit
0Cxh Generic DAC/ADC DMA, 8-bit
------------------------------------------------------------------------------
0A0h Disable Stereo Input Mode SBPro Only
COMMAND
DESCRIPTION
Selects monaural input mode on SoundBlaster Pro.
NOTES
þ Monaural input mode is default.
þ SoundBlaster 16 uses command 0Bxh/0Cxh for stereo input.
SEE ALSO
0A8h Enable Stereo Input Mode
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0F1h DSP Auxiliary Status (Obsolete)
------------------------------------------------------------------------------
0A8h Enable Stereo Input Mode SBPro Only
COMMAND
DESCRIPTION
Selects stereo input mode on SoundBlaster Pro.
NOTES
þ Monaural input mode is default.
þ SoundBlaster 16 uses command 0Bxh/0Cxh for stereo input.
þ BUG: Stereo input mode results in playback static.
SEE ALSO
0A0h Disable Stereo Input Mode
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0F1h DSP Auxiliary Status (Obsolete)
------------------------------------------------------------------------------
0Bxh/0Cxh Generic DAC/ADC DMA (16-bit, 8-bit) SB16
COMMAND->MODE->LENGTHLOBYTE->LENGTHHIBYTE
DESCRIPTION
Generalized sampling and playback command (includes 16-bit operations).
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform Set Time Constant command (040h), or otherwise set sample rate
c) Setup DMA controller (mode = mode + channel)
d) Perform Generic DAC/ADC DMA command (0Bxh/0Cxh)
e) IRQ: Acknowledge IRQ (input from IRQ Acknowledge port - 02x0Eh/02x0Fh;
perform Generic EOI (020h) to appropriate PICs)
f) Terminate transfer, method dependent on mode
COMMAND BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º(7)³(6)³(5)³(4)³ 3 ³ 2 ³ 1 ³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reserved (0)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ FIFO Mode (0 = Disable, 1 = Enable)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ DMA Mode (0 = Single, 1 = Auto-Init)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Transfer Mode (0 = DAC, 1 = ADC)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ Sampling Resolution
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ 1011b = 16-bit, 1100b = 8-bit
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
MODE BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³[6]³ 5 ³ 4 ³[3]³[2]³[1]³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Reserved (0)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sample Mode (0 = Unsigned, 1 = Signed)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Stereo Mode (0 = Monaural, 1 = Stereo)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
LENGTH = SAMPLES - 1 (even for 16-bit samples)
NOTES
þ Enable FIFO mode for high speed mode or large data transfers.
þ BUG: SoundBlaster 16 ADC only accurate to 12-bits.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0D4h Continue DMA Operation, 8-bit
045h Continue Auto-Initialize DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D5h Halt DMA Operation, 16-bit
0D6h Continue DMA Operation, 16-bit
047h Continue Auto-Initialize DMA, 16-bit
0D9h Exit Auto-Initialize DMA Operation, 16-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
014h DMA DAC, 8-bit
024h DMA ADC, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
01Ch Auto-Initialize DMA DAC, 8-bit
02Ch Auto-Initialize DMA ADC, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
090h Auto-Initialize DMA DAC, 8-bit (High Speed)
098h Auto-Initialize DMA ADC, 8-bit (High Speed)
------------------------------------------------------------------------------
0D0h Halt DMA Operation, 8-bit SB
COMMAND
DESCRIPTION
Pauses 8-bit single-cycle DMA operation.
NOTES
þ Halts every 8-bit DMA mode on SoundBlaster 16.
þ BUG: Halts 16-bit DMA operation on early SoundBlaster 16s (4.04).
SEE ALSO
0D4h Continue DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
------------------------------------------------------------------------------
0D1h Enable Speaker SB
COMMAND
DESCRIPTION
Enables speaker output.
NOTES
þ Reset of DSP disables speaker.
þ BUG: Halts pending DMA operations on SoundBlaster 1.x.
þ BUG: Enabled speaker generates sampling noise on SoundBlaster 2.0.
þ BUG: Speaker MUST be disabled before sampling on SoundBlaster Pro.
þ BUG: Speaker state does NOT physically change on SoundBlaster 16.
þ Originator of noisy 'pops' on some models (capacitor discharge).
SEE ALSO
0D3h Disable Speaker
------------------------------------------------------------------------------
0D3h Disable Speaker SB
COMMAND
DESCRIPTION
Disables speaker output.
NOTES
þ Reset of DSP disables speaker.
þ BUG: Halts pending DMA operations on SoundBlaster 1.x.
þ BUG: Enabled speaker generates sampling noise on SoundBlaster 2.0.
þ BUG: Speaker MUST be disabled before sampling on SoundBlaster Pro.
þ BUG: Speaker state does NOT physically change on SoundBlaster 16.
þ Originator of noisy 'pops' on some models (capacitor discharge).
SEE ALSO
0D1h Enable Speaker
------------------------------------------------------------------------------
0D4h Continue DMA Operation, 8-bit SB
COMMAND
DESCRIPTION
Continues a halted 8-bit single-cycle DMA operation.
NOTES
þ Continues every 8-bit DMA mode on SoundBlaster 16.
þ BUG: Continues 16-bit DMA operation on early SoundBlaster 16 (4.04).
SEE ALSO
0D0h Halt DMA Operation, 8-bit
0DAh Exit Auto-Initialize DMA Operation, 8-bit
------------------------------------------------------------------------------
0D5h Halt DMA Operation, 16-bit SB16
COMMAND
DESCRIPTION
Pauses any 16-bit DMA operation.
SEE ALSO
0D6h Continue DMA Operation, 16-bit
0D9h Exit Auto-Initialize DMA Operation, 16-bit
------------------------------------------------------------------------------
0D6h Continue DMA Operation, 16-bit SB16
COMMAND
DESCRIPTION
Continues any halted 16-bit DMA operation.
SEE ALSO
0D5h Halt DMA Operation, 16-bit
0D9h Exit Auto-Initialize DMA Operation, 16-bit
------------------------------------------------------------------------------
0D8h Speaker Status SB
COMMAND <-STATUS
DESCRIPTION
Determines current status of speaker.
STATUS BYTE
000h = Disabled
0FFh = Enabled
NOTES
þ Reset of DSP disables speaker.
SEE ALSO
0D1h Enable Speaker
0D3h Disable Speaker
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
004h DSP Status (Obsolete)
0F1h DSP Auxiliary Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0FBh DSP Status
0FCh DSP Auxiliary Status
0FDh DSP Command Status
------------------------------------------------------------------------------
0D9h Exit Auto-Initialize DMA Operation, 16-bit SB16
COMMAND
DESCRIPTION
Terminates auto-initialized 16-bit DMA operation after current block.
PROCEDURE
a) Perform Disable Speaker command (0D3h)
b) Perform Halt DMA Operation, 16-bit command (0D5h - virtual speaker)
c) Perform Exit Auto-Initialize DMA Operation, 16-bit command (0D9h)
d) Perform Halt DMA Operation, 16-bit command (0D5h - virtual speaker)
NOTES
þ Halt commands are required for immediate termination and to quiet SB16.
SEE ALSO
0D5h Halt DMA Operation, 16-bit
047h Continue Auto-Initialize DMA, 16-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D3h Disable Speaker
------------------------------------------------------------------------------
0DAh Exit Auto-Initialize DMA Operation, 8-bit SB2.0
COMMAND
DESCRIPTION
Terminates auto-initialized 8-bit DMA operations after current block.
PROCEDURE
a) Perform Disable Speaker command (0D3h)
b) Perform Halt DMA Operation, 8-bit command (0D0h - virtual speaker)
c) Perform Exit Auto-Initialize DMA Operation, 8-bit command (0DAh)
d) Perform Halt DMA Operation, 8-bit command (0D0h - virtual speaker)
NOTES
þ Halt commands are required for immediate termination and to quiet SB16.
SEE ALSO
0D0h Halt DMA Operation, 8-bit
045h Continue Auto-Initialize DMA, 8-bit
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D3h Disable Speaker
------------------------------------------------------------------------------
0E0h DSP Identification SB2.0
COMMAND->DATA <-NOT(DATA)
DESCRIPTION
Returns bitwise NOT of data byte.
NOTES
þ Results reliable only after DSP reset on early models.
SEE ALSO
0E1h DSP Version
0E3h DSP Copyright
------------------------------------------------------------------------------
0E1h DSP Version SB
COMMAND <-MAJORVERSIONBYTE<-MINORVERSIONBYTE
DESCRIPTION
Determines DSP major and minor version.
MODEL VERSION
SoundBlaster 1.0 1.?? (1.05???)
SoundBlaster 1.5 1.?? (1.05???)
SoundBlaster 2.0 2.xx (2.01)
SoundBlaster Pro 3.00 (???)
SoundBlaster Pro 2 3.01+ (3.01, 3.02)
SoundBlaster 16 4.0x (4.04, 4.05)
SoundBlaster 16 SCSI-2 4.11 (4.11)
SoundBlaster AWE32 4.12+ (4.12)
NOTES
þ Ensure that no other card is mapped at the same port address by
performing this command twice, checking for a consistent result.
þ BUG: Some SB1.x clones errantly return version 2.00.
þ BUG: Some SB16 SCSI-2s experience daughterboard communication errors.
SEE ALSO
0E0h DSP Identification
0E3h DSP Copyright
------------------------------------------------------------------------------
0E3h DSP Copyright SBPro2???
COMMAND <-ASCII0...ASCIIn<-000h
DESCRIPTION
Reads DSP copyright string.
PROCEDURE
a) Send DSP Copyright command byte (0E3h)
b) Read string byte
c) Loop to B while string byte is not zero
SEE ALSO
0E0h DSP Identification
0E1h DSP Version
------------------------------------------------------------------------------
0E4h Write Test Register SB2.0
COMMAND->TESTBYTE
DESCRIPTION
Writes diagnostic register.
NOTES
þ DSP reset does not clear the test register.
SEE ALSO
0E8h Read Test Register
------------------------------------------------------------------------------
0E8h Read Test Register SB2.0
COMMAND <-TESTBYTE
DESCRIPTION
Reads diagnostic register.
NOTES
þ DSP reset does not clear the test register.
SEE ALSO
0E4h Write Test Register
------------------------------------------------------------------------------
0F0h Sine Generator SB
COMMAND
DESCRIPTION
Diagnostic peak-to-peak sine wave generator.
NOTES
þ Disable sound with DSP reset.
þ Sinusodal frequency is about 2KHz.
þ Sets time constant to approximately 0C0h (15625Hz).
þ Enables speaker on models prior to SoundBlaster 16.
------------------------------------------------------------------------------
0F1h DSP Auxiliary Status (Obsolete) SB-Pro2
COMMAND <-STATUS
DESCRIPTION
Retrieves auxiliary information about pending DSP operations.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³[1]³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Speaker Status (0 = Enabled)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ Reserved (1)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ DSPC 0ACh ???
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Stereo Input Mode (1 = Stereo)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DSPC 020h-02Fh (SB1.x) ???
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DSPC 02Dh-02Fh (SB1.x) ???
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
NOTES
þ SoundBlaster Pro introduces bit 3.
SEE ALSO
004h DSP Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0FBh DSP Status
0FCh DSP Auxiliary Status
0FDh DSP Command Status
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D8h Speaker Status
------------------------------------------------------------------------------
0F2h IRQ Request, 8-bit SB
COMMAND
DESCRIPTION
Triggers 8-bit interrupt.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform IRQ Request, 8-bit command (0F2h)
c) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 8-bit port - 02x0Eh;
perform Generic EOI (020h) to appropriate PICs)
SEE ALSO
0F3h Interrupt Request, 16-bit
------------------------------------------------------------------------------
0F3h IRQ Request, 16-bit SB16
COMMAND
DESCRIPTION
Triggers 16-bit interrupt.
PROCEDURE
a) Install IRQ handler (hook vector, update PIC mask)
b) Perform IRQ Request, 16-bit command (0F3h)
c) IRQ: Acknowledge IRQ (input from IRQ Acknowledge, 16-bit port - 02x0Fh;
perform Generic EOI (020h) to appropriate PICs)
SEE ALSO
0F2h Interrupt Request, 8-bit
------------------------------------------------------------------------------
0FBh DSP Status SB16
COMMAND <-STATUS
DESCRIPTION
Retrieves information about pending DSP operations.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ DMA DAC, 8-bit (1 = Active)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ DMA ADC, 8-bit (1 = Active)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ DMA DAC, 16-bit (1 = Active)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA ADC, 16-bit (1 = Active)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Virtual Speaker (1 = Active)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DSPC 04Fh ???
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Time Constant (1 = Modified)
NOTES
þ Time Constant bit will not be set if too large a time constant was
programmed (low sample rate).
þ MediaVision 3D-series cards use this command for DMA and IRQ selection.
SEE ALSO
0FCh DSP Auxiliary Status
0FDh DSP Command Status
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
004h DSP Status (Obsolete)
0F1h DSP Auxiliary Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D8h Speaker Status
------------------------------------------------------------------------------
0FCh DSP Auxiliary Status SB16
COMMAND <-STATUS
DESCRIPTION
Retrieves auxiliary information about pending DMA operations.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ ???
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ DAC/ADC DMA (1 = Synchronous)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ Auto-Init DMA, 8-bit (1 = Active)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Auto-Init DMA, 16-bit (1 = Active)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ???
SEE ALSO
0FBh DSP Status
0FDh DSP Command Status
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
004h DSP Status (Obsolete)
0F1h DSP Auxiliary Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D8h Speaker Status
------------------------------------------------------------------------------
0FDh DSP Command Status SB16
COMMAND <-COMMANDSTATUS
DESCRIPTION
Retrieves most recently successful DSP command.
NOTES
þ Reseting the DSP clears this variable.
þ Command does not support all valid DSP commands, but most.
þ MediaVision 3D-series cards use this command for DMA and IRQ detection.
SEE ALSO
0FBh DSP Status
0FCh DSP Auxiliary Status
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
004h DSP Status (Obsolete)
0F1h DSP Auxiliary Status (Obsolete)
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
0D8h Speaker Status
==============================================================================
MIXER REGISTERS
------------------------------------------------------------------------------
000h Reset Write SBPro
001h Status Read SBPro
002h Master Volume Read/Write SBPro Only
004h DAC Level Read/Write SBPro
006h FM Output Control Read/Write SBPro Only
00Ah Microphone Level Read/Write SBPro
00Ch Input/Filter Select Read/Write SBPro Only
00Eh Output/Stereo Select Read/Write SBPro Only
022h Master Volume Read/Write SBPro
026h FM Level Read/Write SBPro
028h CD Audio Level Read/Write SBPro
02Eh Line In Level Read/Write SBPro
030h Master Volume Left Read/Write SB16
031h Master Volume Right Read/Write SB16
032h DAC Level Left Read/Write SB16
033h DAC Level Right Read/Write SB16
034h FM Level Left Read/Write SB16
035h FM Level Right Read/Write SB16
036h CD Audio Level Left Read/Write SB16
037h CD Audio Level Right Read/Write SB16
038h Line In Level Left Read/Write SB16
039h Line In Level Right Read/Write SB16
03Ah Microphone Level Read/Write SB16
03Bh PC Speaker Level Read/Write SB16
03Ch Output Control Read/Write SB16
03Dh Input Control Left Read/Write SB16
03Eh Input Control Right Read/Write SB16
03Fh Input Gain Control Left Read/Write SB16
040h Input Gain Control Right Read/Write SB16
041h Output Gain Control Left Read/Write SB16
042h Output Gain Control Right Read/Write SB16
043h Automatic Gain Control (AGC) Read/Write SB16
044h Treble Left Read/Write SB16
045h Treble Right Read/Write SB16
046h Bass Left Read/Write SB16
047h Bass Right Read/Write SB16
080h IRQ Select Read/Write SB16
081h DMA Select Read/Write SB16
082h IRQ Status Read SB16
------------------------------------------------------------------------------
000h Reset Write SBPro
DESCRIPTION
Resets mixer to default settings.
PROCEDURE
a) Load index register
b) Wait 100æs
c) Write reset stop
RESET BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reset Stop (0)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Reserved (0)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
NOTES
þ Defaults documented for each register (SBPro, SB16)
------------------------------------------------------------------------------
001h Status Read SBPro
DESCRIPTION
Contains previously selected register value.
STATUS BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÂÄ Mixer Data Register value
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄ´
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
NOTES
þ SoundBlaster 16 sets bit 7 if previous mixer index invalid.
þ Status bytes initially 080h on startup for all but level bytes (SB16)
------------------------------------------------------------------------------
002h Master Volume Read/Write SBPro Only
VOLUME BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³[4]³ 3 ³ 2 ³ 1 ³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Right Master Volume bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Master Volume bit 3-1 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
099h, N/A
NOTES
þ Same as register 022h selection.
SEE ALSO
022h Master Volume Read/Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
030h Master Volume Left Read/Write
031h Master Volume Right Read/Write
------------------------------------------------------------------------------
004h DAC Level Read/Write SBPro
LEVEL BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Right DAC Level bit 0 (SB16, SBPro=1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Right DAC Level bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left DAC Level bit 0 (SB16, SBPro=1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left DAC Level bit 3-1 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
099h, 0CCh
NOTES
þ Mixer detection can be accomplished by looking for this register index.
þ SoundBlaster 16 will automatically update registers 031h and 032h,
transferring bits 7-4 and setting bit 3.
SEE ALSO
032h DAC Level Left Read/Write
033h DAC Level Right Read/Write
------------------------------------------------------------------------------
006h FM Output Control Read/Write SBPro Only
CONTROL BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³ 6 ³ 5 ³[4]³ 3 ³ 2 ³ 1 ³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ FM Level (bits 3-1, see notes)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FM Left Channel (0 = On, 1 = Off)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FM Right Channel (0 = On, 1 = Off)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)
DEFAULT
019h, N/A
NOTES
þ FM level controls both channels.
þ If only one channel is active, the inactive channel's voices will
be routed through the active one.
þ SoundBlaster Pro will automatically update register 026h,
transferring source bits 3-0 to destination bits 7-4 and 3-0.
SEE ALSO
026h FM Level Read/Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
034h FM Level Left Read/Write
035h FM Level Right Read/Write
------------------------------------------------------------------------------
00Ah Microphone Level Read/Write SBPro
LEVEL BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Microphone Level bit 0 (SB16, SBPro=0)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Microphone Level bit 2-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, 000h
SEE ALSO
03Ah Microphone Level Read/Write
------------------------------------------------------------------------------
00Ch Input/Filter Select Read/Write SBPro Only
SELECT BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³[6]³ 5 ³[4]³ 3 ³ 2 ³ 1 ³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Input Select (0 = Microphone,
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÙ 1 = CD Audio, 3 = Line In)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Frequency (0 = Highpass, 1 = Lowpass)
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Filter Input (0 = On, 1 = Off)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, N/A
SEE ALSO
03Dh Input Control Left Read/Write
03Eh Input Control Right Read/Write
------------------------------------------------------------------------------
00Eh Output/Stereo Select Read/Write SBPro Only
SELECT BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º[7]³[6]³ 5 ³[4]³[3]³[2]³ 1 ³[0]º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Reserved (1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄ Stereo Output Mode (1 = Stereo)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Filter Output (0 = On, 1 = Off)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, N/A
NOTES
þ SoundBlaster 16 uses command 0Bxh/0Cxh for stereo output.
SEE ALSO
03Ch Output Control Read/Write
------------------------------------------------------------------------------
022h Master Volume Read/Write SBPro
VOLUME BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Right Master bit 0 (SB16, SBPro=1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Right Master bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left Master bit 0 (SB16, SBPro=1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Master bit 3-1 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, 0CCh
NOTES
þ SoundBlaster 16 will automatically update registers 030h and 031h,
transferring bits 7-4 and setting bit 3.
þ SoundBlaster Pro register 002h is the same as this.
SEE ALSO
002h Master Volume Read/Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
030h Master Volume Left Read/Write
031h Master Volume Right Read/Write
------------------------------------------------------------------------------
026h FM Level Read/Write SBPro
LEVEL BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Right FM Level bit 0 (SB16, SBPro=1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Right FM Level bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left FM Level bit 0 (SB16, SBPro=1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left FM Level bit 3-1 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, 0CCh
NOTES
þ SoundBlaster 16 will automatically update registers 033h and 034h,
transferring bits 7-4 and setting bit 3.
þ SoundBlaster Pro will automatically update register 006h,
transferring bits 3-1 and setting bit 0.
SEE ALSO
006h FM Output Control Read/Write
úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
034h FM Level Left Read/Write
035h FM Level Right Read/Write
------------------------------------------------------------------------------
028h CD Audio Level Read/Write SBPro
LEVEL BYTE
ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
³ ³ ³ ³ ³ ³ ³ ÀÄÄÄ Right CD Audio bit 0 (SB16, SBPro=1)
³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÂÄ Right CD Audio bit 3-1 (SBPro)
³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄ´
³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left CD Audio bit 0 (SB16, SBPro=1)
³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left CD Audio bit 3-1 (SBPro)
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DEFAULT
011h, 000h
NOTES
þ SoundBlaster 16 will automatically update registers 035h and 036h,
transferring bits 7-4 and setting bit 3.
SEE ALSO
036h CD Audio Level Left Read/Write
037h CD Audio Level Right Read/Write
------------------------------------------------------------------------------