Skip to content

Sound Blaster Programming Information: André Baresel, Craig Jackson.

Notifications You must be signed in to change notification settings

qb40/sound-blaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



   ÜÜÜÜ                          ÜÜÜÜ
  Û                              Û   Û
  ÛÜÜÜÜÜ  ÜÜÜ  Ü   Ü ÜÜÜÜ  ÜÜÜÜ  ÛÜÜÜÛÜ Ü      ÜÜÜ  ÜÜÜÜÜ ÜÜÜÜÜÜ ÜÜÜÜÜ ÜÜÜÜ
       Û Û   Û Û   Û Û   Û Û   Û Û    Û Û     ÛÜÜÜÛ ÛÜÜÜÜ   Û    ÛÜÜ   ÛÜÜÜß
       Û Û   Û Û   Û Û   Û Û   Û Û    Û Û     Û   Û     Û   Û    Û     Û   Û
  ßßßßßß ßßßßß  ßßßß ß   ß ßßßß  ßßßßßß ßßßßß ß   ß ßßßßß   ß    ßßßßß ß   ß
                       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
------------------------------------------------------------------------------
 02Eh       Line In Level                               Read/Write  SBPro

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Right Line In bit  0  (SB16, SBPro=1)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÂÄ Right Line In bit 3-1 (SBPro)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  Line In bit  0  (SB16, SBPro=1)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left  Line In bit 3-1 (SBPro)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     011h, 000h

    NOTES
     þ SoundBlaster 16 will automatically update registers 037h and 038h,
        transferring bits 7-4 and setting bit 3.

    SEE ALSO
     038h   Line In Level Left                  Read/Write
     039h   Line In Level Right                 Read/Write
------------------------------------------------------------------------------
 030h       Master Volume Left                          Read/Write  SB16

    VOLUME BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Master Volume (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 7-4
        of register 022h
     þ SoundBlaster Pro selects register 020h for 030h.

    SEE ALSO
     031h   Master Volume Right                 Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     022h   Master Volume                       Read/Write
------------------------------------------------------------------------------
 031h       Master Volume Right                         Read/Write  SB16

    VOLUME BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right Master Volume (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 3-0
        of register 022h.

    SEE ALSO
     030h   Master Volume Left                  Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     022h   Master Volume                       Read/Write
------------------------------------------------------------------------------
 032h       DAC Level Left                              Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left DAC Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 7-4
        of register 024h.
     þ SoundBlaster Pro selects register 022h for 032h.

    SEE ALSO
     033h   DAC Level Right                     Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     004h   DAC Level                           Read/Write
------------------------------------------------------------------------------
 033h       DAC Level Right                             Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right DAC Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 3-0
        of register 024h.

    SEE ALSO
     032h   DAC Level Left                      Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     004h   DAC Level                           Read/Write
------------------------------------------------------------------------------
 034h       FM Level Left                               Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left FM Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 7-4
        of register 026h.

    SEE ALSO
     035h   FM Level Right                      Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     006h   FM Output Control                   Read/Write
     026h   FM Level                            Read/Write
------------------------------------------------------------------------------
 035h       FM Level Right                              Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right FM Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 0C0h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 3-0
        of register 026h.

    SEE ALSO
     034h   FM Level Left                       Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     006h   FM Output Control                   Read/Write
     026h   FM Level                            Read/Write
------------------------------------------------------------------------------
 036h       CD Audio Level Left                         Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left CD Audio Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 7-4
        of register 028h.
     þ SoundBlaster Pro selects register 026h for 036h.

    SEE ALSO
     037h   CD Audio Level Right                Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     028h   CD Audio Level                      Read/Write
------------------------------------------------------------------------------
 037h       CD Audio Level Right                        Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right CD Audio Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 3-0
        of register 028h.

    SEE ALSO
     036h   CD Audio Level Left                 Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     028h   CD Audio Level                      Read/Write
------------------------------------------------------------------------------
 038h       Line In Level Left                          Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Line In Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 7-4
        of register 02Eh.
     þ SoundBlaster Pro selects register 028h for 038h.

    SEE ALSO
     039h   Line In Level Right                 Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     02Eh   Line In Level                       Read/Write
------------------------------------------------------------------------------
 039h       Line In Level Right                         Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right Line In Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ SoundBlaster 16 will automatically transfer bits 7-4 to bits 3-0
        of register 02Eh.

    SEE ALSO
     038h   Line In Level Left                  Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     02Eh   Line In Level                       Read/Write
------------------------------------------------------------------------------
 03Ah       Microphone Level                            Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Microphone Level (2dB)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    SEE ALSO
     00Ah   Microphone Level                    Read/Write
------------------------------------------------------------------------------
 03Bh       PC Speaker Level                            Read/Write  SB16

    LEVEL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³[5]³[4]³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ PC Speaker Level (2dB)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h
------------------------------------------------------------------------------
 03Ch       Output Control                              Read/Write  SB16

    CONTROL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Microphone     (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Right CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Left  CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Right Line In  (0 = Off, 1 = On)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  Line In  (0 = Off, 1 = On)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 01Fh

    SEE ALSO
     041h   Output Gain Control Left            Read/Write
     042h   Output Gain Control Right           Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     036h   CD Audio Level Left                 Read/Write
     037h   CD Audio Level Right                Read/Write
     038h   Line In Level Left                  Read/Write
     039h   Line In Level Right                 Read/Write
     03Ah   Microphone Level                    Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     00Eh   Output/Stereo Select                Read/Write
------------------------------------------------------------------------------
 03Dh       Input Control Left                          Read/Write  SB16

    CONTROL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Microphone     (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Right CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Left  CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Right Line In  (0 = Off, 1 = On)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  Line In  (0 = Off, 1 = On)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Right FM       (0 = Off, 1 = On)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  FM       (0 = Off, 1 = On)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)

    DEFAULT
     N/A, 015h

    NOTES
     þ Register controls remapping of left input channel
        (off, left, right, or left and right)

    SEE ALSO
     03Eh   Input Control Right                 Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     03Fh   Input Gain Control Left             Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     034h   FM Level Left                       Read/Write
     035h   FM Level Right                      Read/Write
     036h   CD Audio Level Left                 Read/Write
     037h   CD Audio Level Right                Read/Write
     038h   Line In Level Left                  Read/Write
     039h   Line In Level Right                 Read/Write
     03Ah   Microphone Level                    Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     00Ch   Input/Filter Select                 Read/Write
------------------------------------------------------------------------------
 03Eh       Input Control Right                         Read/Write  SB16

    CONTROL BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Microphone     (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Right CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Left  CD Audio (0 = Off, 1 = On)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Right Line In  (0 = Off, 1 = On)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  Line In  (0 = Off, 1 = On)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Right FM       (0 = Off, 1 = On)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Left  FM       (0 = Off, 1 = On)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)

    DEFAULT
     N/A, 00Bh

    NOTES
     þ Register controls remapping of right input channel
        (off, left, right, or left and right)
     þ SoundBlaster Pro selects register 02Eh for 03Eh.

    SEE ALSO
     03Dh   Input Control Left                  Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     040h   Input Gain Control Right            Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     034h   FM Level Left                       Read/Write
     035h   FM Level Right                      Read/Write
     036h   CD Audio Level Left                 Read/Write
     037h   CD Audio Level Right                Read/Write
     038h   Line In Level Left                  Read/Write
     039h   Line In Level Right                 Read/Write
     03Ah   Microphone Level                    Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     00Ch   Input/Filter Select                 Read/Write
------------------------------------------------------------------------------
 03Fh       Input Gain Control Left                     Read/Write  SB16

    GAIN BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³[5]³[4]³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Input Gain Control (2^x)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    SEE ALSO
     040h   Input Gain Control Right            Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     043h   Automatic Gain Control (AGC)        Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     03Dh   Input Control Left                  Read/Write
------------------------------------------------------------------------------
 040h       Input Gain Control Right                    Read/Write  SB16

    GAIN BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³[5]³[4]³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right Input Gain Control (2^x)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    SEE ALSO
     03Fh   Input Gain Control Left             Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     043h   Automatic Gain Control (AGC)        Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     03Dh   Input Control Right                 Read/Write
------------------------------------------------------------------------------
 041h       Output Gain Control Left                    Read/Write  SB16

    GAIN BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³[5]³[4]³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Left Output Gain Control (2^x)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ Output Gain Control has no effect when internal amplifier disabled.

    SEE ALSO
     042h   Output Gain Control Right           Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     03Ch   Output Control                      Read/Write
------------------------------------------------------------------------------
 042h       Output Gain Control Right                   Read/Write  SB16

    GAIN BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³[5]³[4]³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Right Output Gain Control (2^x)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ Output Gain Control has no effect when internal amplifier disabled.

    SEE ALSO
     041h   Output Gain Control Left            Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     03Ch   Output Control                      Read/Write
------------------------------------------------------------------------------
 043h       Automatic Gain Control (AGC)                Read/Write  SB16

    AGC BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³[3]³[2]³[1]³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Automatic Gain Control (1 = Enable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 000h

    NOTES
     þ Automatic Gain Control automatically maximizes input signal strength.

    SEE ALSO
     03Fh   Input Gain Control Left             Read/Write
     040h   Input Gain Control Right            Read/Write
------------------------------------------------------------------------------
 044h       Treble Left                                 Read/Write  SB16

    TREBLE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Treble Left (2dB, -14dB to 14dB)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 080h

    SEE ALSO
     045h   Treble Right                        Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     046h   Bass Left                           Read/Write
------------------------------------------------------------------------------
 045h       Treble Right                                Read/Write  SB16

    TREBLE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Treble Right (2dB, -14dB to 14dB)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 080h

    SEE ALSO
     044h   Treble Left                         Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     047h   Bass Right                          Read/Write
------------------------------------------------------------------------------
 046h       Bass Left                                   Read/Write  SB16

    BASS BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Bass Left (2dB, -14dB to 14dB)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 080h

    SEE ALSO
     047h   Bass Right                          Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     044h   Treble Left                         Read/Write
------------------------------------------------------------------------------
 047h       Bass Right                                  Read/Write  SB16

    BASS BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³[3]³[2]³[1]³[0]º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Reserved (0)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Bass Right (2dB, -14dB to 14dB)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    DEFAULT
     N/A, 080h

    SEE ALSO
     046h   Bass Left                           Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     045h   Treble Right                        Read/Write
------------------------------------------------------------------------------
 080h       IRQ Select                                  Read/Write  SB16

    SELECT BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ IRQ2  (0 = Disable, 1 = Enable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ IRQ5  (0 = Disable, 1 = Enable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ IRQ7  (0 = Disable, 1 = Enable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ IRQ10 (0 = Disable, 1 = Enable)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (1)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Unaffected by mixer reset or soft reboot.
     þ Enabling multiple bits enables multiple IRQs.

    SEE ALSO
     081h   DMA Select                          Read/Write
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
     082h   IRQ Status                          Read
------------------------------------------------------------------------------
 081h       DMA Select                                  Read/Write  SB16

    SELECT BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³[4]³ 3 ³[2]³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ DMA0, 8-bit  (0 = Disable, 1 = Enable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ DMA1, 8-bit  (0 = Disable, 1 = Enable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ DMA2, Reserved (0)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA3, 8-bit  (0 = Disable, 1 = Enable)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA4, Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA5, 16-bit (0 = Disable, 1 = Enable)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA6, 16-bit (0 = Disable, 1 = Enable)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMA7, 16-bit (0 = Disable, 1 = Enable)

    NOTES
     þ Unaffected by mixer reset or soft reboot.
     þ Enabling multiple 8 or 16-bit DMA bits enables multiple DMA channels.
     þ Disabling all 8-bit DMA channel bits disables 8-bit DMA requests,
        including translated 16-bit DMA requests.
     þ Disabling all 16-bit DMA channel bits enables translation of 16-bit DMA
        requests to 8-bit ones, using the selected 8-bit DMA channel.

    SEE ALSO
     080h   IRQ Select                          Read/Write
------------------------------------------------------------------------------
 082h       IRQ Status                                  Read        SB16

    STATUS BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³[3]³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ IRQ Status, 8-bit   (1 = Active)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ IRQ Status, 16-bit  (1 = Active)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ IRQ Status, MPU-401 (1 = Active)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Reserved (0)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ ???
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´  (01h = v4.04, 02h = v4.05, 08h = v4.12)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    SEE ALSO
     080h   IRQ Select                          Read/Write


==============================================================================
 DMA CONTROLLERS
------------------------------------------------------------------------------

 Ú-ÄÄÄÄÄÄÄÄ¿     ÚÄÄÂÂÄÄ¿              ÚÄÄÂÂÄÄ¿
 ³ ÚÄÄÄÄÄ¿ ³    Õµ  ÀÙ  ƸÄChannel 4ÄÄÕµ  ÀÙ  ƸÄÄÄ Channel 0 ¿
 ³ ³ CPU ³ ³ÄÄÄÄÕµ DMA2 ƸÄÄÄÄÄÄÄÄÄÄ¿ Õµ DMA1 ƸÄÄÄ Channel 1 à 8-bit
 ³ ÀÄÄÄÄÄÙ ³    Õµ 8237 ƸÄÄÄÄÄÄÄÄ¿ ³ Õµ 8237 ƸÄÄÄ Channel 2 ³
 ÀÄÄÄÄÄÄÄÄÙ     Õµ      ƸÄÄÄÄÄÄ¿ ³ ³ Õµ      ƸÄÄÄ Channel 3 Ù
                 ÀÄÄÄÄÄÄÙ       ³ ³ ³  ÀÄÄÄÄÄÄÙ
                                ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 5 ¿
   DMAC ORGANIZATION (AT)       ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 6 Ã 16-bit
                                ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 7 Ù

 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
 º  DMA CHANNEL  ³ AT ARCHITECTURE ³ XT ARCHITECTURE º
 º               ³                 ³                 º
 ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹  ¿
 º       0       ³ AVAILABLE       ³ DRAM REFRESH    º  ³
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ  à Memory-Memory support
 º       1       ³ AVAILABLE       ³ AVAILABLE       º  ³
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ  Ù
 º       2       ³ FLOPPY CONTRLR. ³ FLOPPY CONTRLR. º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
 º       3       ³ AVAILABLE       ³ HDD CONTROLLER  º
 Ç---------------Å-----------------Å-----------------¶
 º       4       ³ CASCADE         ³ N/A             º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
 º       5       ³ AVAILABLE       ³ N/A             º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
 º       6       ³ AVAILABLE       ³ N/A             º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
 º       7       ³ AVAILABLE       ³ N/A             º
 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  PROCEDURE
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  1) Enable channel mask
      OUT     00Ah,004h OR cChannel              ( 8-bit)
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT     0D4h,004h OR cChannel              (16-bit)

  2) Clear byte pointer
      OUT     00Ch,...                           ( 8-bit)
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT     0D8h,...                           (16-bit)

  3) Configure transfer mode
      OUT     00Bh,cMode OR cChannel             ( 8-bit)
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT     0D6h,cMode OR cChannel             (16-bit)

  4) Write page address
      OUT    { 087h,083h,081h,082h },cPage       ( 8-bit)
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT    { 08Fh,08Bh,089h,08Ah },cPage       (16-bit)

  5) Write offset address
      OUT    { 000h,002h,004h,006h },cAddressLo  ( 8-bit)
      OUT    { 000h,002h,004h,006h },cAddressHi
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT    { 0C0h,0C4h,0C8h,0CCh },cAddressLo  (16-bit)
      OUT    { 0C0h,0C4h,0C8h,0CCh },cAddressHi

  6) Write length - 1
      OUT    { 001h,003h,005h,007h },cLengthLo   ( 8-bit)
      OUT    { 001h,003h,005h,007h },cLengthHi
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT    { 0C2h,0C6h,0CAh,0CEh },cLengthLo   (16-bit)
      OUT    { 0C2h,0C6h,0CAh,0CEh },cLengthHi

  7) Disable channel mask
      OUT     00Ah,cChannel                      ( 8-bit)
     úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
      OUT     0D4h,cChannel                      (16-bit)

------------------------------------------------------------------------------
 000h       Channel 0 Address, 8-bit                    Read/Write  XT

    DESCRIPTION
     Programs channel transfer offset address (byte granular).

    PROCEDURE
     a) Output LSB of offset address (port 000h)
     b) Output MSB of offset address (port 000h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     087h   Channel 0 Page, 8-bit               Write
     001h   Channel 0 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 001h       Channel 0 Length, 8-bit                     Read/Write  XT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 001h)
     b) Output MSB of length (port 001h)

    LENGTH = BYTES - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     087h   Channel 0 Page, 8-bit               Write
     000h   Channel 0 Address, 8-bit            Read/Write
------------------------------------------------------------------------------
 002h       Channel 1 Address, 8-bit                    Read/Write  XT

    DESCRIPTION
     Programs channel transfer offset address (byte granular).

    PROCEDURE
     a) Output LSB of offset address (port 002h)
     b) Output MSB of offset address (port 002h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     083h   Channel 1 Page, 8-bit               Write
     003h   Channel 1 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 003h       Channel 1 Length, 8-bit                     Read/Write  XT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 003h)
     b) Output MSB of length (port 003h)

    LENGTH = BYTES - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     083h   Channel 1 Page, 8-bit               Write
     002h   Channel 1 Address, 8-bit            Read/Write
------------------------------------------------------------------------------
 004h       Channel 2 Address, 8-bit                    Read/Write  XT

    DESCRIPTION
     Programs channel transfer offset address (byte granular).

    PROCEDURE
     a) Output LSB of offset address (port 004h)
     b) Output MSB of offset address (port 004h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     081h   Channel 2 Page, 8-bit               Write
     005h   Channel 2 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 005h       Channel 2 Length, 8-bit                     Read/Write  XT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 005h)
     b) Output MSB of length (port 005h)

    LENGTH = BYTES - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     081h   Channel 2 Page, 8-bit               Write
     004h   Channel 2 Address, 8-bit            Read/Write
------------------------------------------------------------------------------
 006h       Channel 3 Address, 8-bit                    Read/Write  XT

    DESCRIPTION
     Programs channel transfer offset address (byte granular).

    PROCEDURE
     a) Output LSB of offset address (port 006h)
     b) Output MSB of offset address (port 006h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     082h   Channel 3 Page, 8-bit               Write
     007h   Channel 3 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 007h       Channel 3 Length, 8-bit                     Read/Write  XT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 007h)
     b) Output MSB of length (port 007h)

    LENGTH = BYTES - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     082h   Channel 3 Page, 8-bit               Write
     006h   Channel 3 Address, 8-bit            Read/Write
------------------------------------------------------------------------------
 008h       Status Register, 8-bit                      Read        XT

    DESCRIPTION
     Controller channel status register.

    STATUS BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Channel 0 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 1 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel 2 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 3 Terminal Count (1 = Reached)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 0 DREQ           (1 = Active )
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 1 DREQ           (1 = Active )
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 2 DREQ           (1 = Active )
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 3 DREQ           (1 = Active )

    NOTES
     þ Terminal count bit indicates transfer complete.
------------------------------------------------------------------------------
 008h       Command Register, 8-bit                     Write       XT

    DESCRIPTION
     Controller configuration register.

    COMMAND BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Mem-Mem Transfer         (1 = Enable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 0-4 Address Hold (1 = Enable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Controller (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timing     (0 = Normal, 1 = Compressed)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Priority   (0 = Fixed, 1 = Rotating)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Write Mode (0 = Late,  1 = Extended)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DREQ Active Sensing (0 = Low, 1 = High)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DACK Active Sensing (0 = Low, 1 = High)
------------------------------------------------------------------------------
 009h       Request Register, 8-bit                     Write       XT

    DESCRIPTION
     ???

    REQUEST BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel Request (1 = Enable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
------------------------------------------------------------------------------
 00Ah       Single Mask Register, 8-bit                 Write       XT

    DESCRIPTION
     Selects individual DMA channel, and enables or disables it.

    MASK BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel Mask (0 = Clear, 1 = Set)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Program the mask register before programming channel.

    SEE ALSO
     00Fh   Master Mask Register, 8-bit         Write
------------------------------------------------------------------------------
 00Bh       Mode Register, 8-bit                        Write       XT

    DESCRIPTION
     Selects and configures individual DMA channel.

    MODE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÂÄ Operation       (0 = Verify,
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                   1 = Write, 2 = Read)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Auto-Initialize (0 = Off, 1 = On)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Direction       (0 = Increment)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Operation Mode  (0 = Demand,1 = Single,
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                   2 = Block, 3 = Cascade)

    NOTES
     þ Demand mode

         ÖÄÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄ¿  ÚÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÄ·
         º  DREQ ÃÄÄÄ´ TERMINAL COUNT-1 ÃÄÄ´ ? ÃÄij DACK ÃÄÄij DONE  º
         ÓÄÄÄÄÄÄÂÙY  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÂÄÙN ÀÄÄÂÄÄÂÙ   ÀÄÄÄÄÄÄĽ
             ÀÄÄÙN   ³                       ³Y   ÀÄÄÙN ³Y
                     ³           ÚÄÄÄÄ¿    ÚÄÁÄ¿        ³
                     ÀÄÄÄÄÄÄÄÄÄÄÄ´DREQ³ÄÄÄÄ´EOPÃÄÄÄÄÄÄÄÄÙ
                                YÀÄÄÄÂÙ   NÀÄÄÄÙY
                                  ÀÄÄÙN

        Transfer begins as soon as DREQ becomes active and continues until
         terminal count is reached or an external end-of-process (EOP) is
         signalled.  In auto-initialized mode, only an external EOP stops
         the transfer.  Deactivating DREQ pauses the transfer, reactivating
         it continues.


     þ Single mode

         ÖÄÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄ¿             ÚÄÄÄÄÄÄÄ·
         º  DREQ ÃÄÄÄ´ TERMINAL COUNT-1 ÃÄÄ´ ? ÃÄÄÄÄÄÄÄÄÄÄÄÄij DONE  º
         ÓÄÄÄÄÄÄÄÙ   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÂÄÙN            ÀÄÄÄÄÄÄĽ
                     ³                       ³Y
                     ³ ÚÄÄÄÄÄÄ¿  ÚÄÄÄÄ¿      ³
                     ÀÄ´ DACK ³ÄÄ´DREQ³ÄÄÄÄÄÄÙ
                      YÀÄÄÄÂÄÄÙ YÀÄÄÄÂÙ
                        ÀÄÄÙN     ÀÄÄÙN

        Transfer begins as soon as DREQ becomes active and continues until
         the next byte is transferred and loops until terminal count.


     þ Block mode

         ÖÄÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄ¿  ÚÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÄ·
         º  DREQ ÃÄÄÄ´ TERMINAL COUNT-1 ÃÄÄ´ ? ÃÄij DACK ÃÄÄij DONE  º
         ÓÄÄÄÄÄÄÂÙY  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÂÄÙN ÀÄÄÂÄÄÂÙ   ÀÄÄÄÄÄÄĽ
             ÀÄÄÙN   ³                       ³Y   ÀÄÄÙN ³Y
                     ³                     ÚÄÁÄ¿        ³
                     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´EOPÃÄÄÄÄÄÄÄÄÙ
                                          NÀÄÄÄÙY

        Transfer begins as soon as DREQ becomes active and continues until
         terminal count is reached or an external end-of-process (EOP) is
         signalled.  In auto-initialized mode, only an external EOP stops
         the transfer.


     þ Cascade mode

        Reserved for chaining DMA controllers.
------------------------------------------------------------------------------
 00Ch       Clear Byte Pointer Register, 8-bit          Write       XT

    DESCRIPTION
     Resets 8-bit DMA controller address pointer on output (any value).
------------------------------------------------------------------------------
 00Dh       Temporary Register, 8-bit                   Read        XT

    DESCRIPTION
     Contains memory-to-memory data bytes.
------------------------------------------------------------------------------
 00Dh       Master Reset Register, 8-bit                Write       XT

    DESCRIPTION
     Resets 8-bit DMA controller and all its channels on output (any value).

    SEE ALSO
     00Eh   Master Enable Register, 8-bit       Write
------------------------------------------------------------------------------
 00Eh       Master Enable Register, 8-bit               Write       XT

    DESCRIPTION
     Enables all 8-bit DMA controller channels on output (any value).

    SEE ALSO
     00Dh   Master Reset Register, 8-bit        Write
------------------------------------------------------------------------------
 00Fh       Master Mask Register, 8-bit                 Write       XT

    DESCRIPTION
     Selects multiple DMA channels, enabling or disabling them.

    MASK BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Channel 0 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 1 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel 2 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 3 (0 = Enable, 1 = Disable)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    SEE ALSO
     00Ah   Single Mask Register, 8-bit         Write
------------------------------------------------------------------------------
 081h       Channel 2 Page, 8-bit                       Write       XT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 2 (64K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 1M of physical memory with 8-bit DMA.

    SEE ALSO
     004h   Channel 2 Address, 8-bit            Read/Write
     005h   Channel 2 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 082h       Channel 3 Page, 8-bit                       Write       XT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 3 (64K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 1M of physical memory with 8-bit DMA.

    SEE ALSO
     006h   Channel 3 Address, 8-bit            Read/Write
     007h   Channel 3 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 083h       Channel 1 Page, 8-bit                       Write       XT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 1 (64K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 1M of physical memory with 8-bit DMA.

    SEE ALSO
     002h   Channel 1 Address, 8-bit            Read/Write
     003h   Channel 1 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 087h       Channel 0 Page, 8-bit                       Write       XT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 0 (64K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 1M of physical memory with 8-bit DMA.

    SEE ALSO
     000h   Channel 0 Address, 8-bit            Read/Write
     001h   Channel 0 Length, 8-bit             Read/Write
------------------------------------------------------------------------------
 089h       Channel 6 Page, 16-bit                      Write       AT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 6 (128K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 16M of physical memory with 16-bit DMA.

    SEE ALSO
     0C8h   Channel 6 Address, 16-bit           Read/Write
     0CAh   Channel 6 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 08Ah       Channel 7 Page, 16-bit                      Write       AT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 7 (128K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 16M of physical memory with 16-bit DMA.

    SEE ALSO
     0CCh   Channel 7 Address, 16-bit           Read/Write
     0CEh   Channel 7 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 08Bh       Channel 5 Page, 16-bit                      Write       AT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 5 (128K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Page addressing allows access to 16M of physical memory with 16-bit DMA.

    SEE ALSO
     0C4h   Channel 5 Address, 16-bit           Read/Write
     0C6h   Channel 5 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 08Fh       Channel 4 Page, 16-bit                      Write       AT

    DESCRIPTION
     Programs channel page address.

    PAGE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Page, Channel 4 (128K granular)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄ´
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Reserved channel for cascading DMA controllers.
     þ Page addressing allows access to 16M of physical memory with 16-bit DMA.

    SEE ALSO
     0C0h   Channel 4 Address, 16-bit           Read/Write
     0C2h   Channel 4 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 0C0h       Channel 4 Address, 16-bit                   Read/Write  AT

    DESCRIPTION
     Programs channel transfer offset address (word granular).

    PROCEDURE
     a) Output LSB of offset address/2 (port 0C0h)
     b) Output MSB of offset address/2 (port 0C0h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     08Fh   Channel 4 Page, 16-bit              Write
     0C2h   Channel 4 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 0C2h       Channel 4 Length, 16-bit                    Read/Write  AT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 0C2h)
     b) Output MSB of length (port 0C2h)

    LENGTH = BYTES/2 - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     08Fh   Channel 4 Page, 16-bit              Write
     0C0h   Channel 4 Address, 16-bit           Read/Write
------------------------------------------------------------------------------
 0C4h       Channel 5 Address, 16-bit                   Read/Write  AT

    DESCRIPTION
     Programs channel transfer offset address (word granular).

    PROCEDURE
     a) Output LSB of offset address/2 (port 0C4h)
     b) Output MSB of offset address/2 (port 0C4h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     08Bh   Channel 5 Page, 16-bit              Write
     0C6h   Channel 5 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 0C6h       Channel 5 Length, 16-bit                    Read/Write  AT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 0C6h)
     b) Output MSB of length (port 0C6h)

    LENGTH = BYTES/2 - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     08Bh   Channel 5 Page, 16-bit              Write
     0C4h   Channel 5 Address, 16-bit           Read/Write
------------------------------------------------------------------------------
 0C8h       Channel 6 Address, 16-bit                   Read/Write  AT

    DESCRIPTION
     Programs channel transfer offset address (word granular).

    PROCEDURE
     a) Output LSB of offset address/2 (port 0C8h)
     b) Output MSB of offset address/2 (port 0C8h)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     089h   Channel 6 Page, 16-bit              Write
     0CAh   Channel 6 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 0CAh       Channel 6 Length, 16-bit                    Read/Write  AT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 0CAh)
     b) Output MSB of length (port 0CAh)

    LENGTH = BYTES/2 - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     089h   Channel 6 Page, 16-bit              Write
     0C8h   Channel 6 Address, 16-bit           Read/Write
------------------------------------------------------------------------------
 0CCh       Channel 7 Address, 16-bit                   Read/Write  AT

    DESCRIPTION
     Programs channel transfer offset address (word granular).

    PROCEDURE
     a) Output LSB of offset address/2 (port 0CEh)
     b) Output MSB of offset address/2 (port 0CEh)

    NOTES
     þ Reading port retrieves current transfer offset address.

    SEE ALSO
     08Ah   Channel 7 Page, 16-bit              Write
     0CEh   Channel 7 Length, 16-bit            Read/Write
------------------------------------------------------------------------------
 0CEh       Channel 7 Length, 16-bit                    Read/Write  AT

    DESCRIPTION
     Programs channel transfer length.

    PROCEDURE
     a) Output LSB of length (port 0CEh)
     b) Output MSB of length (port 0CEh)

    LENGTH = BYTES/2 - 1

    NOTES
     þ Reading port retrieves transfer length remaining.

    SEE ALSO
     08Ah   Channel 7 Page, 16-bit              Write
     0CCh   Channel 7 Address, 16-bit           Read/Write
------------------------------------------------------------------------------
 0D0h       Status Register, 16-bit                     Read        AT

    DESCRIPTION
     Controller channel status register.

    STATUS BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Channel 4 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 5 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel 6 Terminal Count (1 = Reached)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 7 Terminal Count (1 = Reached)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 4 DREQ           (1 = Active )
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 5 DREQ           (1 = Active )
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 6 DREQ           (1 = Active )
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 7 DREQ           (1 = Active )

    NOTES
     þ Terminal count bit indicates transfer complete.
------------------------------------------------------------------------------
 0D0h       Command Register, 16-bit                    Write       AT

    DESCRIPTION
     Controller configuration register.

    COMMAND BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Mem-Mem Transfer         (1 = Enable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 0-4 Address Hold (1 = Enable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Controller (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Timing     (0 = Normal, 1 = Compressed)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Priority   (0 = Fixed, 1 = Rotating)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Write Mode (0 = Late,  1 = Extended)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DREQ Active Sensing (0 = Low, 1 = High)
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DACK Active Sensing (0 = Low, 1 = High)
------------------------------------------------------------------------------
 0D2h       Request Register, 16-bit                    Write       AT

    DESCRIPTION
     ???

    REQUEST BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select (-4)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel Request (1 = Enable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
------------------------------------------------------------------------------
 0D4h       Single Mask Register, 16-bit                Write       AT

    DESCRIPTION
     Selects individual DMA channel, and enables or disables it.

    MASK BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³[3]³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select (-4)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel Mask (0 = Clear, 1 = Set)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    NOTES
     þ Program the mask register before programming channel.

    SEE ALSO
     0DEh   Master Mask Register, 16-bit        Write
------------------------------------------------------------------------------
 0D6h       Mode Register, 16-bit                       Write       AT

    DESCRIPTION
     Selects and configures individual DMA channel.

    MODE BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÂÄ Channel Select (-4)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÙ
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÂÄ Operation       (0 = Verify,
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                   1 = Write, 2 = Read)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Auto-Initialize (0 = Off, 1 = On)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Direction       (0 = Increment)
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Operation Mode  (0 = Demand,1 = Single,
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                   2 = Block, 3 = Cascade)

    NOTES
     þ See register 00Bh notes for description of modes.
------------------------------------------------------------------------------
 0D8h       Clear Byte Pointer Register, 16-bit         Write       AT

    DESCRIPTION
     Resets 16-bit DMA controller address pointer on output (any value).
------------------------------------------------------------------------------
 0DAh       Temporary Register, 16-bit                  Read        AT

    DESCRIPTION
     Contains memory-to-memory data words.

    NOTES
     þ Reserved for cascading DMA controllers on AT architecture.
------------------------------------------------------------------------------
 0DAh       Master Reset Register, 16-bit               Write       AT

    DESCRIPTION
     Resets 16-bit DMA controller and all its channels on output (any value).

    SEE ALSO
     0DCh   Master Enable Register, 16-bit      Write
------------------------------------------------------------------------------
 0DCh       Master Enable Register, 16-bit              Write       AT

    DESCRIPTION
     Enables all 16-bit DMA controller channels on output (any value).

    SEE ALSO
     0DAh   Master Reset Register, 16-bit       Write
------------------------------------------------------------------------------
 0DEh       Master Mask Register, 16-bit                Write       AT

    DESCRIPTION
     Selects multiple DMA channels, enabling or disabling them.

    MASK BYTE
     ÉÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍ»
     º[7]³[6]³[5]³[4]³ 3 ³ 2 ³ 1 ³ 0 º
     ÈÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑÍÏÍÑͼ
       ³   ³   ³   ³   ³   ³   ³   ÀÄÄÄ Channel 4 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄ Channel 5 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄ Channel 6 (0 = Enable, 1 = Disable)
       ³   ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Channel 7 (0 = Enable, 1 = Disable)
       ³   ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ Reserved (0)
       ³   ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ³   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    SEE ALSO
     0D4h   Single Mask Register, 16-bit        Write


==============================================================================
 GLOSSARY
------------------------------------------------------------------------------

 Adaptive Differential Pulse Code Modulation (ADPCM)

  Creative Labs ADPCM does not follow the CCITT ADPCM recommendations,
  but does provide a similar quality compression scheme for 8-bit samples
  (down to 2, 2.6, or 4-bits per sample).

  Creative Labs ADPCM is not supported by many SoundBlaster clones.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Advanced Signal Processor (ASP, CSP)

  Creative Labs proprietary programmable signal processor.

  Although development tools for the ASP are scarce, Creative Labs has
  released demo software implementing QSound technology and various
  compression schemes (from IMA ADPCM to æ-law and à-law).

  Recently renamed from ASP to CSP (Creative Signal Processor) to avoid
  confusion with a U.S. company of the same name.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Aliasing

  Digital artifacts indicative of finite numerical representation, especially
  noticeble at areas of high deviation.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Amplitude

  Maximum departure of the value of an alternating current or wave from an
  average value.  In acoustics, amplitude is intimately related to loudness.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Amplitude Modulation (AM)

  Carrier wave amplitude modulation in response to the strength of a signal.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Analog

  Representation with periodic waves.  Contrast digital.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Analog-To-Digital Convertor (ADC)

  Device which converts from an analog signal (such as sound) to a digital one.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Auto-Initialize Mode (AI)

  Mode where DMA controller processes multiple blocks without explicit
  reprogramming.  Contrast single-cycle mode.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Bass

  Acoustic quality describing sounds of lower frequency in the spectrum.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Creative Music Synthesis??? (C/MS)

  Obsolete AM synthesizer chipset implementing twelve stereo sine generators
  modulated in predefined banks by one of four programmable noise generators.

  Originally implemented on the Creative Labs GameBlaster card; supported by
  the SoundBlaster 1.0 and 1.5 (as an upgrade option).

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Decibel (dB)

  Unit of measurement describing the ratio of two acoustic, mechanical, or
  electrical signal strengths; expressed as ten times the common logarithm
  of their power ratio.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Digital

  Representation with finite numerical elements.  Contrast analog.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Digital Signal Processor (DSP)

  Device which performs mathematical operations across a digital waveform.
  SoundBlasters barely qualify, with only ADPCM to their name.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Digital-To-Analog Convertor (DAC)

  Device which converts from a digital signal to an analog one.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Direct Memory Access (DMA)

  Method of using external hardware to perform block memory copy operations
  so the central processing unit can be dedicated to more sophisticated tasks.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Frequency

  Number of repetitive occurences, or cycles, within a given time domain.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Frequency Modulation (FM)

  Carrier wave frequency modulation in response to a signal; resulting in
  decreased distortion levels.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Frequency Modulation Synthesis (FM Synthesis)

  Describes a method of synthesizing sound using a programmable carrier and
  one or more programmable frequency modulators.  Popularized by Fairlight.

  Yamaha OPL-hardware implementation is closer to phase modulation.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Gain

  Ratio of increase of input over output in an amplifier.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 General MIDI

  Standardized 128-entry patch map and associated specifications.
  Patch quality differs greatly across implementations.

  Regulated by the MIDI Manufacturer's Association (MMA).

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Hertz (Hz)

  Unit of frequency measurement describing number of cycles per second.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 High Speed Mode

  SoundBlaster DMA transfer mode operating at a frequency greater than 23kHz,
  using up clocks cycles otherwise destined for DSP command interpretation.

  Obsolete on SoundBlaster 16, but supported. (unofficial)

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Mixer

  SoundBlaster component analagous to an army of volume controls.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 MPU-401

  Developed by Roland, the MPU-401 is the industry standard MIDI interface.
  It can operate either as an intelligent or a dumb UART.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Music Instrument Digital Interface (MIDI)

  Standard for communication between electronic musical instruments, related
  hardware, and digital computers.  Serial protocol operating at 38.4Kbps.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Nyquist Theorem

  Accurate reproduction of a signal demands that the sampling frequency be
  at least twice the rate of the highest frequency in the source signal.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Pulse Code Modulation (PCM)

  Digital sound reproduction method that outputs discrete amplitude values
  at a steady rate to produce an analog sound.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 QSound (tm)

  Filtering technique providing a larger panning arc than traditional
  stereo techniques (180ø).  Licensed by Creative Labs.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Sample

  Digital representation of analog signal.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Single Cycle Mode (SC)

  Mode where DMA controller processes a single block.  Contrast auto-init mode.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Treble

  Acoustic quality describing sounds of higher frequency in the spectrum.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Universal Asynchronous Receiver/Transmitter (UART)

  Device responsible for conversion to or from a serial bit stream.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

 Wave Table Synthesis

  Synthesis method employing sampled instruments and sounds as opposed to
   artifically generated sound effects.

 úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú

==============================================================================
 ACKNOWLEDGEMENTS
------------------------------------------------------------------------------
 Ron Arts, Chris Barrett, Hussam Eassa, Brandom Hume, Cornel Huth, 
 Draeden/VLA, Jeffery Lee, Alain Jacques, Jerry Joplin, Eckard Lehmann, 
 Juan Carlos Leon, Bob Manson, Tom Marshall, Richard Mulder, Josha Munnik, 
 Eric Oostendorp, Tino Riethmueller, Jim Roberts, Peter Roberts, 
 Jens-Uwe Rumstich, Daniel Sachs, Edward Schlunder, Peter Sprenger, 
 Heiko Stassburg, Mark Stehr, Jim Vieira

==============================================================================
 REFERENCES
------------------------------------------------------------------------------

STANDARDS
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  CCITT G.721 - ADPCM @ 32 kbits/sec
  CCITT G.723 - ADPCM @ 24 and 40 kbits/sec
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

PUBLICATIONS
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  MIDI Processing Unit MPU-401 Technical Reference v1.5
   Roland Corporation                                   Roland Corp.   1985
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Schaum's Outline: Theory and Problems of Acoustics
   William Seto                                         McGraw-Hill    1971
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Yamaha OPL2 Technical Reference                       CAT#: LSI-6MF2622
   Yamaha Corporation                                   Yamaha Corp.
  +1 408 437-3133 (USA)
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Yamaha OPL3 Technical Reference                       CAT#: LSI-2438120
   Yamaha Corporation                                   Yamaha Corp.
  +1 408 437-3133 (USA)
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

BOOKS
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  The SoundBlaster Book                                 ISBN: 3-88745-560-6
   Josha Munnik, Eric Oostendorp                        SYBEX          1992
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Das SoundBlaster Profibuch                            ISBN: 3-89319-583-1
   Eckard Lehmann, Tino Riethmueller, Heiko Stassburg   Addison-Wesley 1993
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

FILES
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Audio File Formats FAQ                                AudioFormats.*
    Guido van Rossum
    ftp.cwi.nl::pub/audio                               TEXT
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  DMA Programming Information                           VLA_DMA.ZIP      3K
    Draeden/VLA                                         1993
    x2ftp.oulu.fi::pub/msdos/programming/vla            TEXT
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Joystick Programming Information                      GAMEPORT.INF     3K
    Bill Frolik                                         1990
    x2ftp.oulu.fi::pub/msdos/programming/specs          TEXT
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  MIDI Standards Documentation                          MIDI*.*
    Various
    ftp.cs.ruu.nl::/pub/MIDI/DOC                        TEXT
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  OPL2 Programming Information                          ADLIB_SB.TXT    20K
    Jeffery Lee                                         1992
    x2ftp.oulu.fi::pub/msdos/programming/faq            TEXT
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  OPL3 Programming Information                          OPL3_DOC.ARJ    18K
    Vladimir Arnost                                     1994
    x2ftp.oulu.fi::pub/msdos/programming/docs           TEXT, GIF
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  PC Game Programmer's Enyclopedia v1.0                 PCGPE10.ZIP    702K
    Mark Feldman                                        1994
    x2ftp.oulu.fi::pub/msdos/programming/gpe            TEXT, PASCAL
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  VBE/AI SDK v1.03                                      VAISDK.EXE     388K
    Video Electronic Standards Association              1994
    ftp.wi.leidenuniv.nl:/pub/audio/programming         TEXT, C
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Virtual DMA Specification (VDS)                       PW0519.ZIP      47K
    John Hagerson of Microsoft                          1992
    ftp.microsoft.com::Softlib/MSLFILES                 TEXT, WORD
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

SOURCE
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  SoundBlaster Freedom Project v3.0                     SBF3.ZIP        85K
    Jeff Bird, Christopher Box                          1994
    x2ftp.oulu.fi::pub/msdos/programming/music          C, ASM
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  SoundBlaster Programming v1.0                         SBPROG10.ZIP    36K
    Christopher Box                                     1993
    x2ftp.oulu.fi::pub/msdos/programming/music          C++, ASM
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  SoundX SoundBlaster Library                           SOUNDX.ZIP      32K
    Peter Sprenger                                      1993
    x2ftp.oulu.fi::pub/msdos/programming/music          C, ASM
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  SNDBLST v4.0                                          SNDBLST4.ZIP    96K
    David Welch                                         1993
    x2ftp.oulu.fi::pub/msdos/programming/music          C
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

NEWSGROUPS
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  SoundBlaster Programming
    alt.sb.programmer

  Soundcard Technical Discussion
    comp.sys.ibm.pc.soundcard.tech
    comp.sys.ibm.pc.soundcard.misc
 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

==============================================================================
 CONTACT ADDRESSES
------------------------------------------------------------------------------
 Andr‚ Baresel      baresel@informatik.hu-berlin.de     (Internet )
   Cyder of
  Green Apple       Andr‚ Baresel                       (Snailmail)
                    Hans-Grade-Ring 5
                    14480 Potsdam
                    Germany

 Craig Jackson      Craig.Jackson@launchpad.unc.edu     (Internet )

                    Craig Jackson                       (Snailmail)
                    119 Penwood Drive
                    Cary, North Carolina 27511
                    United States of America