Interrupt List Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
Index for category s - sound/speech,

Table of Contents by Order
104F13BX0000 - INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
104F13BX0001 - INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
104F13BX0002 - INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
104F13BX0003 - INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
104F13BX0004 - INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
104F13BX0005 - INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
104F13BX0006 - INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
16DFDF - INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
186900 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
186901 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
186902 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
186903 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
186904 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
186905 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
186906 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
186907 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
186908 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
186909 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
18690A - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
18690B - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
18690C - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
18690D - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
188000 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
188001 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
188002 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
188003 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
188004 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
1A7F - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
1A80 - INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
1A8100 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
1A82 - INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
1A83 - INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
1A84 - INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
1A85 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
1AFF00 - INT 1A - SND - INSTALLATION CHECK???
1AFF01 - INT 1A - SND - PAUSE
1AFF02 - INT 1A - SND - START SOUND
1AFF03 - INT 1A - SND - STOP SOUND
1AFF04 - INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
1AFF05 - INT 1A - SND - UNCONDITIONALLY STOP SOUND
214402 - INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API
214402 - INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API
21FD12BX3457 - INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
2D--10 - INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE
2D--11 - INT 2D - CDTSR - REPROGRAM CDTSR
2D--12 - INT 2D - CDTSR - DISABLE POPUP
2D--13 - INT 2D - CDTSR - ENABLE POPUP
2F60FFDL00 - INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
2F60FFDL01 - INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
2F8200 - INT 2F - RESPLAY - SAMPLE/PLAYBACK
2F8201 - INT 2F - RESPLAY - INSTALLATION CHECK
2F8202 - INT 2F - RESPLAY - UNINSTALL
2F8210 - INT 2F - RESPLAY - INITIALIZE
2F8220 - INT 2F - MODRES - PLAY MODULE
2F8221 - INT 2F - MODRES - INSTALLATION CHECK
2F8222 - INT 2F - MODRES - UNINSTALL
2F8223 - INT 2F - MODRES - PLAY SAMPLE
2F8224 - INT 2F - MODRES - ???
2F8225 - INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
2F8226 - INT 2F - MODRES v2.00+ - STOP PLAYING
2F8227 - INT 2F - MODRES - CONFIGURE
2FBC00BX3F3F - INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
2FBC01 - INT 2F - MediaVision MVSOUND.SYS - GET VERSION
2FBC02 - INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
2FBC03 - INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
2FBC04 - INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
2FBC06 - INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
2FBC0B - INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
2FBC0E - INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
2FCD00BX464F - INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
2FCD00DX4957 - INT 2F R - InterWave Game API - INSTALLATION CHECK
2FCD01BX0000 - INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
2FCD02 - INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
2FCD03 - INT 2F R - InterWave Game API - SUSPEND PROGRAM
2FCD04 - INT 2F R - InterWave Game API - WAKE PROGRAM
2FCD05 - INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
2FCD21 - INT 2F R - InterWave Game API - OPEN GAME DEVICE
2FCD22 - INT 2F R - InterWave Game API - CLOSE GAME DEVICE
2FCD80 - INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
2FFBFBES0000 - INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK
4D - INT 4D - IBM - M-Audio Adapter SUPPORT
62C0 - INT 62 U - GWBTSR - API
65 - INT 65 - Ad Lib SOUND.COM - INTERFACE
65----SI0000 - INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
65----SI0003 - INT 65 - Ad Lib SOUND.COM - SET STATE
65----SI0004 - INT 65 - Ad Lib SOUND.COM - GET STATE
65----SI0006 - INT 65 - Ad Lib SOUND.COM - SET MODE
65----SI0007 - INT 65 - Ad Lib SOUND.COM - GET MODE
65----SI000C - INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
65----SI000D - INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
65----SI8000 - INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
65----SI8001 - INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
65----SI8002 - INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
65----SI8003 - INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
65----SI8004 - INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
65----SI8005 - INT 65 U - Media Vision FM.COM v4.1a+ - ???
660688 - INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
660689 - INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
66068A - INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
66068B - INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
66068C - INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
66068D - INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
66068E - INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
66068F - INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
660690 - INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
660691 - INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
660693 - INT 66 - DIGPAK - SET TIMER DIVISOR RATE
660694 - INT 66 - DIGPAK - PLAY PREFORMATTED DATA
660695 - INT 66 - DIGPAK - POST AUDIO PENDING
660696 - INT 66 - DIGPAK - GET AUDIO PENDING STATUS
660697 - INT 66 - DIGPAK - SET STEREO PANNING
660698 - INT 66 - DIGPAK - SET PLAY MODE
660699 - INT 66 - DIGPAK - GET ADDRESSES
66069A - INT 66 - DIGPAK - SET RECORD MODE
66069B - INT 66 - DIGPAK - STOP NEXT LOOP
66069C - INT 66 - DIGPAK - SET DMA BACKFILL MODE
66069D - INT 66 - DIGPAK - REPORT DMA COUNTER
66069E - INT 66 - DIGPAK - VERIFY DMA BLOCK
66069F - INT 66 - DIGPAK - SET PCM VOLUME
6606A0 - INT 66 - DIGPAK - SET DPMI MODE
660700 - INT 66 - MIDPAK - UNINSTALL
660701 - INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
660702 - INT 66 - MIDPAK - PLAY SEQUENCE
660703 - INT 66 - MIDPAK - SEGUE SEQUENCE
660704 - INT 66 - MIDPAK - REGISTER XMIDI
660705 - INT 66 - MIDPAK - STOP MIDI
660706 - INT 66 O - MIDPAK - REMAP CHANNEL
660707 - INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
660708 - INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
660709 - INT 66 O - MIDPAK - MIDI SLEEP
66070A - INT 66 O - MIDPAK - MIDI AWAKE
66070B - INT 66 - MIDPAK - RESUME PLAYING
66070C - INT 66 - MIDPAK - GET SEQUENCE STATUS
66070D - INT 66 - MIDPAK - REGISTER XMIDI FILE
66070E - INT 66 - MIDPAK - GET RELATIVE VOLUME
66070F - INT 66 - MIDPAK - SET RELATIVE VOLUME
660710 - INT 66 - MIDPAK - LOAD MIDPAK DRIVER
660711 - INT 66 - MIDPAK - POLL MIDPAK
660712 - INT 66 - MIDPAK - GET MIDI CLOCK
660713 - INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
660714 - INT 66 - MIDPAK - GET EVENT ID ADDRESS
660716 - INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
67DEE1BX0C55 - INT 67 - "SB Live!" Sound Blaster 16 Emulation Driver - INSTALLATION CHECK
78 - INT 78 - ULTRAMID - API
7E00 - INT 7E - MaxSBOS v0.21 - GET ???
7E0001 - INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
7E0002 - INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
7E00F6 - INT 7E - SBOS v3.82 - SET ???
7E00F7 - INT 7E - SBOS v3.82 - GET ???
7E00F9 - INT 7E - SBOS v3.82 - SET ???
7E00FB - INT 7E - SBOS v3.82 - SET ???
7E00FD - INT 7E - SBOS v3.82 - SET ???
7E00FE - INT 7E - SBOS v3.82 - UNINSTALL
7E00FF - INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
7E01 - INT 7E - MaxSBOS v0.21 - ???
7E02 - INT 7E - MaxSBOS v0.21 - ???
7E03 - INT 7E - MaxSBOS v0.21 - NOP
7E--80 - INT 7E - IWSBSDRV v1.41 - GET ???
7E--81 - INT 7E - IWSBSDRV v1.41 - ???
7E--82 - INT 7E - IWSBSDRV v1.41 - GET ???
7E--83 - INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
7E--84 - INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
7E--85 - INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
7E--86 - INT 7E - IWSBSDRV v1.41 - HOOK INT 21
7E--87 - INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
7F4150BHC1 - INT 7F U - Voyetra - AAPISG - API
7F4331BHC1 - INT 7F U - Voyetra - VAPISG - API
7F564DBHC1 - INT 7F U - Voyetra Multimedia Player - VMP.EXE API
7F5658BHC1 - INT 7F U - Voyetra - VAPISG - API
80----BL00 - INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
80----BL01 - INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
80----BL02 - INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
80----BL03 - INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
80----BL04 - INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
80----BL05 - INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
80----BX0000 - INT 80 - SoundBlaster SBFM driver - GET VERSION
80----BX0000 - INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
80----BX0001 - INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
80----BX0001 - INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
80----BX0002 - INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
80----BX0002 - INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
80----BX0003 - INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
80----BX0004 - INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
80----BX0005 - INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
80----BX0005 - INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
80----BX0006 - INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
80----BX0007 - INT 80 - SoundBlaster SBFM driver - STOP MUSIC
80----BX0008 - INT 80 - SoundBlaster SBFM driver - RESET DRIVER
80----BX0009 - INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
80----BX000A - INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
80----BX000B - INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
80----BX0400 - INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
80----BX0401 - INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
810200 - INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
810202 - INT 81 - Gravis UltraSound - MegaEm - ???
810300 - INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
810400 - INT 81 - Gravis UltraSound - MegaEm - ???
812010 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
812011 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
812012 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
812015 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
8300 - INT 83 - JM Pro Tracker v5.0 - ???
8301 - INT 83 - JM Pro Tracker v5.0 - ???
8302 - INT 83 - JM Pro Tracker v5.0 - ???
8303 - INT 83 - JM Pro Tracker v5.0 - ???
8304 - INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
8305 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8306 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8307 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
8308 - INT 83 - JM Pro Tracker v5.0 - START PLAYING???
8309 - INT 83 - JM Pro Tracker v5.0 - PAUSE???
830A - INT 83 - JM Pro Tracker v5.0 - RESUME???
830B - INT 83 - JM Pro Tracker v5.0 - ???
830C - INT 83 - JM Pro Tracker v5.0 - ???
830D - INT 83 - JM Pro Tracker v5.0 - ???
830E - INT 83 - JM Pro Tracker v5.0 - ???
830F - INT 83 - JM Pro Tracker v5.0 - ???
8310 - INT 83 - JM Pro Tracker v5.0 - ???
8311 - INT 83 - JM Pro Tracker v5.0 - ???
8312 - INT 83 - JM Pro Tracker v5.0 - CLEAR ???
8313 - INT 83 - JM Pro Tracker v5.0 - ???
8314 - INT 83 - JM Pro Tracker v5.0 - ???
8315 - INT 83 - JM Pro Tracker v5.0 - GET ???
8316 - INT 83 - JM Pro Tracker v5.0 - ???
8317 - INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
8318 - INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
94----SI0000 - INT 94 u - PCM driver - INITIALIZE SOUND
94----SI0001 - INT 94 u - PCM driver - INITIALIZE PCM
94----SI0002 - INT 94 u - PCM driver - INITIALIZE PCM INFO
94----SI0003 - INT 94 u - PCM driver - INITIALIZE DMA BUFFER
94----SI0004 - INT 94 u - PCM driver - INITIALIZE USER FUNCTION
94----SI0005 - INT 94 u - PCM driver - BEGIN AUDIO PLAY
94----SI0006 - INT 94 u - PCM driver - BEGIN AUDIO RECORD
94----SI0007 - INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
94----SI0008 - INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
94----SI0009 - INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
94----SI000A - INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
94----SI000B - INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
94----SI000D - INT 94 u - Media Vision PCM.COM - GET STATUS
94----SI8000 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
94----SI8001 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
94----SI8002 - INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
94----SI8004 - INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
94----SI8005 - INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
94----SI8011 - INT 94 u - Media Vision PCM.COM - INITIALIZE
94----SI8012 - INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
94----SI8013 - INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
94----SI8014 - INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
94----SI8015 - INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
94----SI8016 - INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
94--01SI8017 - INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
94--02SI8017 - INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
94--04SI8017 - INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
94--08SI8017 - INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
94--10SI8017 - INT 94 u - Media Vision PCM.COM - TIMER CONTROL
94----SI8018 - INT 94 u - Media Vision PCM.COM - GET INFO
F1 - INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
F1 - INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
F2 - INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
F3 - INT F3 - SoundBlaster - POINTER TO ECHO VALUE


104F13BX0000 - INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
	AX = 4F13h
	BX = 0000h
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		    BX = version (0010h for 1.00 -- note nonstandard value!)
		01h failed
SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h

Top
104F13BX0001 - INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
	AX = 4F13h
	BX = 0001h
	CX = 0000h ???
	DX = type of device
	    0001h Wave device
	    0002h MIDI device
	    0003h Volume device
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		    CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
		01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h

Top
104F13BX0002 - INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
	AX = 4F13h
	BX = 0002h
	CX = handle
	DX = query
	    0001h return length of GeneralDeviceClass
	    0002h return copy	of GeneralDeviceClass (see #00112)
	    0003h return length of Volume Info Structure
	    0004h return copy	of Volume Info Structure (see #00122)
	    0005h return length of Volume Services Structure
	    0006h return copy	of Volume Services Structure (see #00124)
	    0007h-000Fh reserved
	    0010h-FFFFh device-specific
	SI:DI -> buffer (functions 0002h,0004h,0006h)
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		    SI:DI = length (functions 1,3,5)
		    SI:DI buffer filled (functions 2,4,6)
		01h failed
Note:	functions 0003h to 0006h are only supported for the Volume device

Format of GeneralDeviceClass structure:
Offset	Size	Description	(Table 00112)
 00h	4 BYTEs	name of the structure ("GENI")
 04h	DWORD	structure length
 08h	WORD	type of device (1=Wave, 2=MIDI)
 0Ah	WORD	version of VESA driver support (0100h for 1.00)
 10h	var	for CX=handle for Wave device:
		    Wave Info structure (see #00113)
		    some bytes ???
		for CX=handle for MIDI device:
		    MIDI Info Structure (see #00118)
		    first 8 bytes of MIDI Service Structure ???
SeeAlso: #00122,#00124

Format of WAVE Info Structure:
Offset	Size	Description	(Table 00113)
 00h	4 BYTEs	name of the structure ("WAVI")
 04h	DWORD	structure length [0000007Eh]
 08h	DWORD	driver software version [00000003h]
 0Ch 32 BYTEs	vendor name, etc. (ASCIZ string)
 2Ch 32 BYTEs	vendor product name
 4Ch 32 BYTEs	vendor chip/hardware description
 6Ch	BYTE	installed board number
 6Dh	3 BYTEs	unused data
 70h	DWORD	feature bits (see #00114)
 74h	WORD	user determined preference field
 76h	WORD	memory required for driver use [0200h]
 78h	WORD	number of timer tick callbacks per second [0000h]
 7Ah	WORD	channels: 1 = mono, 2 = stereo
		stereo is assumed to be interleaved data
 7Ch	WORD	bitfield of max sample sizes (see #00115)
SeeAlso: #00118

Bitfields for Wave feature bits:
Bit(s)	Description	(Table 00114)
 0	8000hz Mono Playback
 1	8000hz Mono Record
 2	8000hz Stereo Record
 3	8000hz Stereo Playback
 4	8000hz Full Duplex Play/Record
 5	11025hz Mono Playback
 6	11025hz Mono Record
 7	11025hz Stereo Record
 8	11025hz Stereo Playback
 9	11025hz Full Duplex Play/Record
 10	22050hz Mono Playback
 11	22050hz Mono Record
 12	22050hz Stereo Record
 13	22050hz Stereo Playback
 14	22050hz Full Duplex Play/Record
 15	44100hz Mono Playback
 16	44100hz Mono Record
 17	44100hz Stereo Record
 18	44100hz Stereo Playback
 19	44100hz Full Duplex Play/Record
 20-26	reserved (0)
 27	driver must pre-handle the data
 28	Variable Sample mono   playback
 29	Variable Sample stereo playback
 30	Variable Sample mono   record
 31	Variable Sample stereo record

(Table 00115)
Values for Sample data size:
 01h	8bit play
 02h	16bit play
 10h	8bit record
 20h	16bit record

Format of WAVE Audio Services structure:
Offset	Size	Description	(Table 00116)
 00h	4 BYTEs	name of the structure
 04h	DWORD	structure length
 08h 16 BYTEs	for future expansion
---entry points (details???)---
 18h	DWORD	DeviceCheck
		11h compression (see also #00117)
		12h driver state
		13h get current pos
		14h sample rate
		15h set preference
		16h get DMA,IRQ
		17h get IO address
		18h get mem address
		19h get mem free
		1Ah full duplex
		1Bh get block size
		1Ch get PCM format
		1Dh enable PCM format
		80h-.. vendors can add DevChks above 0x80
 1Ch	DWORD	PCMInfo
 20h	DWORD	PlayBlock
 24h	DWORD	PlayCont
 28h	DWORD	RecordBlock
 2Ch	DWORD	RecordCont
 30h	DWORD	PauseIO
 34h	DWORD	ResumeIO
 38h	DWORD	StopIO
 3Ch	DWORD	WavePrepare
 40h	DWORD	WaveRegister
 44h	DWORD	GetLastError
		01h unsupported feature/function
		02h bad sample rate
		03h bad block length
		04h bad block address
		05h app. missed an IRQ
		06h don't understand the PCM size/format
		80h-.. vendors specific errors
 48h	DWORD	TimerTick
 4Ch	DWORD	ApplPSyncCB: CallBack: play filled in by the app
 50h	DWORD	ApplRSyncCB: CallBack: rec filled in by the app
SeeAlso: #00120,#00124

(Table 00117)
Values for type of compression:
 01h	IMA play
 02h	ALAW play
 03h	ULAW play
 11h	IMA record
 12h	ALAW record
 13h	ULAW record

Format of MIDI Info Structure:
Offset	Size	Description	(Table 00118)
 00h	4 BYTEs	name of the structure ("MIDI")
 04h	DWORD	structure length
 08h	DWORD	driver software version [00000003h]
 0Ch 32 BYTEs	vendor name, etc. (ASCIZ string)
 2Ch 32 BYTEs	vendor product name
 4Ch 32 BYTEs	vendor chip/hardware description
 6Ch	BYTE	installed board number
 6Dh	3 BYTEs	unused data
 70h 14 BYTEs	the patch library file name [OPL2.BNK 00..]
 7Eh	DWORD	feature bits (see #00119)
 80h	WORD	user determined preference field
 82h	WORD	memory required for driver use
 84h	WORD	# of timer tick callbacks per second
 86h	WORD	max # of tones (voices, partials)
SeeAlso: #00112,#00120,#00122

Bitfields for MIDI feature bits:
Bit(s)	Description	(Table 00119)
 0-3	reserved for GM extensions
 4	Transmitter/Receiver only
 5	Patches preloaded
 6	MIDI receive has time stamp
 8	MIDI interrupt driven input supported
 9	MIDI polled input supported
 10	MIDI remote patches supported

Format of MIDI Service structure:
Offset	Size	Description	(Table 00120)
 00h	4 BYTEs	name of the structure ("MIDS")
 04h	DWORD	structure length
 08h 16 WORDs	patches loaded table bit field
 28h 16 BYTEs	for future expansion
---entry points (details???)---
 38h	DWORD	device check
		11h return available tones
		12h return TRUE/FALSE if patch is understood
		13h set preference
		14h allow/disallow voice stealing
		15h get FIFO sizes
		16h get DMA,IRQ
		17h get IO address
		18h get mem address
		19h get mem free
		80h-.. vendors can add DevChks above 0x80
 3Ch	DWORD	global reset
 40h	DWORD	MIDI msg
 44h	DWORD	poll MIDI
 48h	DWORD	preload patch
 4Ch	DWORD	unload patch
 50h	DWORD	timer tick
 54h	DWORD	get last error
		01h unsupported feature/function
		02h unknown patch type (see #00121)
		03h all tones are used
		04h messages are out of sync
		05h an incoming patch was incomplete
		06h an incoming patch couldn't be stored
		07h had to drop an incoming byte
		08h driver is failing a patch download
		80h-.. vendors specific errors
 58h	DWORD	Patch Block free callback
 5Ch	DWORD	MIDI byte avail. callback
SeeAlso: #00116,#00124

(Table 00121)
Values for MIDI Registered Patch Types:
 10h	OPL2
 11h	OPL3

Format of Volume Info Structure:
Offset	Size	Description	(Table 00122)
 00h  4	BYTEs	name of the structure ("VOLI")
 04h	DWORD	structure length (00000092h)
 08h	DWORD	driver software version [00000001h]
 0Ch 32 BYTEs	vendor name, etc. (ASCIZ string)
 2Ch 32 BYTEs	vendor product name
 4Ch 32 BYTEs	vendor chip/hardware description
 6Ch	BYTE	installed board number (0 for 1st/only board)
 6Dh  3	BYTEs	unused data (0)
 70h 24 BYTEs	text name of the mixer channel
 88h	DWORD	features bits (see #00123)
 8Ch	WORD	minimum volume setting
 8Eh	WORD	maximum volume setting
 90h	WORD	attenuation/gain crossover
SeeAlso: #00112,#00124

Bitfields for Volume feature bits:
Bit(s)	Description	(Table 00123)
 0	Stereo Volume control available
 2	Low Pass Filter is available
 3	High Pass Filter is available
 4	Parametric Tone Control is available
 5	selectable output paths
 8	Azimuth Field positioning supported
 9	Phi Field positioning supported
 10-30	unused???
 31	Master Volume device

Format of Volume Services Structure:
Offset	Size	Description	(Table 00124)
 00h	4 BYTEs	name of the structure ("VOLS")
 04h	DWORD	structure length (00000038h)
 08h 16 BYTEs	16 bytes for future expansion (0)
---entry points (details???)---
 18h	DWORD	device check
		0011h filter range
		0012h filter setting
		0013h filter current
		0014h tone range
		0015h tone setting
		0016h tone current
		0017h path
		0018h get IO address
		0080h-.. vendors can add DevChks above 0x80
 1Ch	DWORD	set vol to an absolute setting
		01h User master volume setting
		02h application master volume setting
 20h	DWORD	set 3D volume
 24h	DWORD	tone control
 28h	DWORD	filter control
 2Ch	DWORD	output path
 30h	DWORD	reset channel
 34h	DWORD	get last error
		01h unsupported feature/function
		02h out of range parameter value
		80h+ vendor-specific errors
SeeAlso: #00116,#00120

Top
104F13BX0003 - INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
	AX = 4F13h
	BX = 0003h
	CX = handle
	DX = API set (16/32-bit)
	SI = segment ???
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		    SI:CX -> memory ???
		01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h

Top
104F13BX0004 - INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
	AX = 4F13h
	BX = 0004h
	CX = handle
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h

Top
104F13BX0005 - INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
	AX = 4F13h
	BX = 0005h
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h

Top
104F13BX0006 - INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
	AX = 4F13h
	BX = 0006h
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		01h failed
SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h

Top
16DFDF - INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
	AX = DFDFh
Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
	  "06/18/93" if installed

Top
186900 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
	AX = 6900h
Return: AX = amount of DRAM on card or 0000h if GUS not available
Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
	  and then shells out the the program requiring its services
SeeAlso: AX=6901h,AX=690Ah,AX=690Bh

Top
186901 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
	AX = 6901h
	BX = number of active voices (14-32)
Return: nothing
SeeAlso: AX=6900h

Top
186902 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
	AX = 6902h
	BX = voice number (00h-1Fh)
	CX = linear volume (0000h-01FFh)
Return: nothing
SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah

Top
186903 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
	AX = 6903h
	BX = voice number (00h-1Fh)
	CX = frequency in Hz (0-44100)
Return: nothing
SeeAlso: AX=6902h,AX=6904h

Top
186904 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
	AX = 6904h
	BX = voice number (00h-1Fh)
	CX = balance (0 = left, 7 = even, 15 = right)
Return: nothing
SeeAlso: AX=6902h,AX=6903h

Top
186905 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
	AX = 6905h
	BL = voice number
	BH = sample type (0 = 8-bit, 1 = 16-bit)
	CL = looping type (0 = none, 1 = forward, 2 = back and forth)
	CH:DI = 20-bit starting address for voice data
	DL:SI = 20-bit address for loop start
	DH:BP = 20-bit address for loop end
SeeAlso: AX=6903h,AX=6906h,AX=690Bh

Top
186906 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
	AX = 6906h
	BL = data format (1 = twos-complement, 0 = not)
	BH = sample type (0 = 8-bit, 1 = 16-bit)
	CX = number of bytes to send
	ES:SI -> buffer containing data
	DL:DI = 20-bit address of GUS DRAM at which to load sound data
SeeAlso: AX=6900h,AX=6905h,AX=690Ch

Top
186907 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
	AX = 6907h
	BX = voice number (00h-1Fh)
Return: nothing
SeeAlso: AX=6908h,AX=690Dh

Top
186908 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
	AX = 6908h
	BX = voice number (00h-1Fh)
	CL:DX = 20-bit ending address
Return: nothing
SeeAlso: AX=690Bh

Top
186909 - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
	AX = 6909h
	BL = voice number (00h-1Fh)
	BH = looping type (0 = none, 1 = forward, 2 = back and forth)
	CX = starting volume
	DX = ending volume
	DI:SI = time
Return: nothing
SeeAlso: AX=6902h,AX=690Ah

Top
18690A - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
	AX = 690Ah
	BX = voice number (00h-1Fh)
Return: AX = current non-linear volume for voice
SeeAlso: AX=6902h,AX=6909h

Top
18690B - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
	AX = 690Bh
	BX = voice number
Return: BX:AX = 20-bit address at which voice is playing
SeeAlso: AX=6900h,AX=6905h,AX=6908h

Top
18690C - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
	AX = 690Ch
	BL = data format (1 = twos-complement, 0 = not)
	BH = sample type (0 = 8-bit, 1 = 16-bit)
	CX = number of bytes to get
	ES:SI -> buffer for retrieved data
	DL:DI = 20-bit address in GUS DRAM from which to read voice data
Return: nothing
SeeAlso: AX=6906h

Top
18690D - INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
	AX = 690Dh
	BX = voice
	CX = sample type (0 = 8-bit, 1 = 16-bit)
	DX = looping type (0 = none, 1 = forward, 2 = back and forth)
Return: CX = balance value
SeeAlso: AX=6907h,AX=6908h

Top
188000 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
	AX = 8000h
Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
	  INT 18h and then shells out to the program requiring its services
SeeAlso: AX=8001h,AX=8004h

Top
188001 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
	AX = 8001h
	BX:CX -> ASCIZ filename
SeeAlso: AX=8000h,AX=8002h

Top
188002 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
	AX = 8002h
SeeAlso: AX=8002h,AX=8003h

Top
188003 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
	AX = 8003h

Top
188004 - INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
	AX = 8004h
SeeAlso: AX=8000h,AX=8003h

Top
1A7F - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
	AH = 7Fh
	???
Return: ???
Note:	this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=80h,AH=83h,AH=85h

Top
1A80 - INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
	AH = 80h
	AL = 00h source is 8253 channel 2
	     01h source is cassette input
	     02h source is I/O channel "Audio IN"
	     03h source is sound generator chip
Note:	although documented in the 1000TL Technical Reference, the 1000TL
	  BIOS has just an IRET for this call
SeeAlso: AH=7Fh,AH=83h

Top
1A8100 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
	AX = 8100h
Return: AL > 80h if supported
	AX = 00C4h if supported (1000SL/TL)
	    CF set if sound chip is busy
	    CF clear  if sound chip is free
Note:	the value of CF is not definitive; call this function until CF is
	  clear on return, then call AH=84h"Tandy"

Top
1A82 - INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
	AH = 82h
	ES:BX -> buffer for sound samples
	CX = length of buffer
	DX = transfer rate (1-4095, 1 is fastest)
Return: AH = 00h
	CF set if sound busy
	CF clear if sound chip free
Note:	the value in DX should be 1/10 the corresponding value for
	  INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL.  Call
	  INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
	The BIOS issues an INT 15/AX=91FBh when the input is complete
	DMA across a 64K boundary is masked by the BIOS

Top
1A83 - INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
	AH = 83h
	AL = volume (0=silence, 7=highest)
	CX = number of bytes to play
	DX = time between sound samples (multiples of 273 nanoseconds)
	    only bits 11-0 used
	ES:BX -> sound data (array of 8-bit unsigned PCM samples)
Return: AH = 00h
	CF set if sound is busy
	CF clear if sound chip is free
Notes:	this call returns immediately while the sound plays in the
	  background; the sound chip is clocked at 3.57 MHz, with the low 12
	  bits of DX specifying the clock divisor
	The BIOS appears to call INT 15/AX=91FBh when the sound device
	  underflows to allow another INT 1A/AH=83h for seamless playing of
	  long sounds.
SeeAlso: AH=84h"Tandy",INT 15/AH=91h

Top
1A84 - INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
	AH = 84h
Return: ???
Note:	the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
SeeAlso: AH=83h"Tandy",AH=85h"Tandy"

Top
1A85 - INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
	AH = 85h
	???
Return: ???
Note:	this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=7Fh,AH=83h"Tandy"

Top
1AFF00 - INT 1A - SND - INSTALLATION CHECK???
INT 1A - SND - INSTALLATION CHECK???
	AX = FF00h
Return: AL = version??? (02h)
	AH = busy flag (00h if not in a SND call, 01h if SND currently active)
Note:	the SND API is also supported by IC (Internal Commands) v2.0, a
	  shareware TSR by Geoff Friesen which extends COMMAND.COM's internal
	  command set
SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05h

Top
1AFF01 - INT 1A - SND - PAUSE
INT 1A - SND - PAUSE
	AX = FF01h
	DX = number of clock ticks to delay
Return: AH = status
	    00h successful
	    01h SND busy
Notes:	if successful, execution returns to the caller after the delay expires;
	  if SND is busy, execution returns immediately
	the IC v2.0 implementation of this API makes no special allowance for
	  time rollover at midnight, which can cause the delay to be over one
	  hour if this function is called just before the BIOS time count
	  rolls over and the delay extends into the next day
SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h
SeeAlso: INT E0/CL=BDh

Top
1AFF02 - INT 1A - SND - START SOUND
INT 1A - SND - START SOUND
	AX = FF02h
	DX = frequency in Hertz (14h-FFFFh)
Return: AH = status
	    00h successful
	    01h SND busy
SeeAlso: AX=FF00h,AX=FF01h,AX=FF03h

Top
1AFF03 - INT 1A - SND - STOP SOUND
INT 1A - SND - STOP SOUND
	AX = FF03h
Return: AH = status
	    00h successful
	    01h busy
Note:	turns off any sound currently being emitted by the PC's speaker unless
	  SND is currently busy processing an API call (this includes
	  background music).  Use AX=FF05h to stop the sound even if an API
	  call is in progress.
SeeAlso: AX=FF00h,AX=FF02h,AX=FF05h

Top
1AFF04 - INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
	AX = FF04h
	DS:DX -> ASCIZ music string
Return: AH = status
	    00h successful (music begins playing in background)
	    01h busy
Note:	the music string accepted by SND is not the same as that accepted by
	  BASIC and other programs which process music strings
SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006h

Top
1AFF05 - INT 1A - SND - UNCONDITIONALLY STOP SOUND
INT 1A - SND - UNCONDITIONALLY STOP SOUND
	AX = FF05h
Return: AH = 00h (successful)
Note:	this function is the same as AX=FF03h, but will stop the sound even if
	  SND is currently busy, such as playing background music
SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007h

Top
214402 - INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API
INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API
	AX = 4402h
	BX = file handle for device "CTMMSYS$"
	CX = 0004h (size of data)
	DS:DX -> buffer for entry point (see #01507)
Return: CF clear if successful
	    buffer updated
	CF set on error
	    AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
	  driver
SeeAlso: AX=4402h"CTSB2",INT 80/BX=0000h"SBFM"

Format of CTMMSYS.SYS entry point record:
Offset	Size	Description	(Table 01507)
 00h	DWORD	(call) signature 4D6D7443h (ASCII "CtmM")
		(ret) pointer to CTMMSYS entry point (see #01508)
SeeAlso: #01509

(Table 01508)
Call CTMMSYS.SYS entry point with:
	AX = ???
	STACK:	WORD	???
		WORD	???
		WORD	??? (0001h,0002h,0005h,0006h)
		WORD	???
		DWORD	-> ???
		WORD	???
		WORD	???
Return: DX:AX = ??? or error code
		0000h:000Bh invalid value for ???
		0000h:000Fh API call already in progress
SeeAlso: #01507

Top
214402 - INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API
INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API
	AX = 4402h
	BX = file handle for device "CTSOUND0"
	CX = 0004h (size of data)
	DS:DX -> buffer for entry point (see #01509)
Return: CF clear if successful
	    buffer updated
	CF set on error
	    AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
	  driver
SeeAlso: AX=4402h"CTMMSYS",INT 80/BX=0000h"SBFM"

Format of CTSB2.SYS entry point record:
Offset	Size	Description	(Table 01509)
 00h	DWORD	(call) signature 4D6D7443h (ASCII "CtmM")
		(ret) pointer to CTSB2 entry point (see #01510)
SeeAlso: #01507

(Table 01510)
Call CTSB2.SYS entry point with:
	AX = ???
	STACK:	DWORD	-> ???
		WORD	function number
			(0100h,0200h,0300h,0400h,0500h,0600h,0701h)
		DWORD	-> ???
		WORD	???
		WORD	???
Return: DX:AX = ??? or error code
		0000h:0004h invalid subfunction???
		0000h:000Bh invalid value for ???
		0000h:000Fh API call already in progress
SeeAlso: #01509

Top
21FD12BX3457 - INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
	AX = FD12h
	BX = 3457h
Return: AX = 5678h if installed
	BX = 1235h if v1.x or v2.x installed
	    CL = interrupt vector used by MegaEm (default 81h)
	BX = 1237h if v3.x installed
	    CL = interrupt vector used by MegaEm (default 81h)
	    DX = version number
Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
	  emulator for the Gravis UltraSound
SeeAlso: INT 2F/AX=CD00h/BX=464Fh,INT 7E/AX=00FEh"SBOS",INT 81/AX=0200h

Top
2D--10 - INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE
INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE
	AL = 10h
	AH = AMIS multiplex number for CDTSR
Return: CX:DX -> CDTSR internal variable structure (see #02583)
Program: CDTSR is a resident audio CD player by Colin Hill
SeeAlso: INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR"

Format of CDTSR internal variable structure:
Offset	Size	Description	(Table 02583)
 00h	BYTE	hotkey scan code (see #00006)
 01h	BYTE	hotkey shift states
 02h	BYTE	flag: repeat
 03h	BYTE	flag: custom repeat
 04h	BYTE	flag: background polling
 05h	DWORD	(read-only) internal timing variable
 09h	DWORD	current track play position, in frames
 0Dh	DWORD	current disk play position, in frames
 11h	BYTE	number of entries in track program
 12h	BYTE	index into track program currently playing (FFh if not playing)
 13h 100 BYTEs	track program (each byte contains one track number)
 77h	BYTE	saved cursor end scan line
 78h	BYTE	saved cursor start scan line
 79h	BYTE	currently playing track
 7Ah	BYTE	CD driver media-change flag
 7Bh	WORD	video base segment during last popup
 7Dh	WORD	video page offset during last popup
 7Fh	BYTE	currently-selected track
 80h	DWORD	begin of custom repeat, in frames
 84h	DWORD	end of custom repeat, in frames
 88h	WORD	track program index of top list item

Top
2D--11 - INT 2D - CDTSR - REPROGRAM CDTSR
INT 2D - CDTSR - REPROGRAM CDTSR
	AL = 11h
	AH = AMIS multiplex number for CDTSR
Return: nothing
Program: CDTSR is a resident audio CD player by Colin Hill
Desc:	reprograms CDTSR based on the values in the internal variable
	  structure (see #02583), which may have been changed by an application
SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR"

Top
2D--12 - INT 2D - CDTSR - DISABLE POPUP
INT 2D - CDTSR - DISABLE POPUP
	AL = 12h
	AH = AMIS multiplex number for CDTSR
Return: nothing
SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=13h"CDTSR"

Top
2D--13 - INT 2D - CDTSR - ENABLE POPUP
INT 2D - CDTSR - ENABLE POPUP
	AL = 13h
	AH = AMIS multiplex number for CDTSR
Return: nothing
Program: CDTSR is a resident audio CD player by Colin Hill
SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR"

Top
2F60FFDL00 - INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
	AX = 60FFh
	DL = 00h (function number)
	BX = 5344h ('SD')
	CX = 4D50h ('MP')
Return: AX = 4F4Bh ('OK') if installed
Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
	  (digitized music files)
Note:	in version 1.00b, any value for DL except 01h invokes this function
SeeAlso: AX=60FFh/DL=01h

Top
2F60FFDL01 - INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
	AX = 60FFh
	DL = 01h (function number)
	BX = 5344h ('SD')
	CX = 4D50h ('MP')
Return: AX = data segment
Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
	  (digitized music files)
SeeAlso: AX=60FFh/DL=00h

Top
2F8200 - INT 2F - RESPLAY - SAMPLE/PLAYBACK
INT 2F - RESPLAY - SAMPLE/PLAYBACK
	AX = 8200h
	DX:DI -> start of sample space
	CX:BX = length in bytes
Return: AX = status (see #02958)
Program: RESPLAY is a freeware sound sampling/playback utility by Mark J. Cox
SeeAlso: AX=8201h"RESPLAY",AX=8210h

(Table 02958)
Values for RESPLAY status:
 1000h	successful
 2000h	not initialized (see AX=8210h)
 other	RESPLAY not installed

Top
2F8201 - INT 2F - RESPLAY - INSTALLATION CHECK
INT 2F - RESPLAY - INSTALLATION CHECK
	AX = 8201h
Return: AX = 7746h if installed
SeeAlso: AX=8202h"RESPLAY",AX=8210h

Top
2F8202 - INT 2F - RESPLAY - UNINSTALL
INT 2F - RESPLAY - UNINSTALL
	AX = 8202h
Return: AX = status
	    1000h successful
SeeAlso: AX=8201h"RESPLAY",AX=8210h"RESPLAY"

Top
2F8210 - INT 2F - RESPLAY - INITIALIZE
INT 2F - RESPLAY - INITIALIZE
	AX = 8210h
	BL = sound device number (see #02959)
	BH = sample rate in multiples of 250 Hz (14h to A0h)
	CL = direction
	    00h playback
	    01h sample
Return: AX = status (see #02958)
SeeAlso: AX=8200h"RESPLAY",AX=8220h"MODRES"

(Table 02959)
Values for RESPLAY sound device:
 00h	printer port LPT1
 01h	printer port LPT2
 02h	prototype board at I/O address 0300h
 03h	printer port (alternative LPT1)
 04h	internal speaker

Top
2F8220 - INT 2F - MODRES - PLAY MODULE
INT 2F - MODRES - PLAY MODULE
	AX = 8220h
	DX:CX -> MODPARM structure (see #02960)
Return: AX = status
	    5722h succesful
	    2000h parameters out of range
	    other MODRES not installed
SeeAlso: AX=8221h,AX=8223h,AX=8225h,AX=8227h,AX=8200h"RESPLAY"

Format of MODPARM Structure:
Offset	Size	Description	(Table 02960)
 00h	WORD	signature 504Dh ("MP" = Modparm)
 02h	BYTE	output device (see #02962 at INT 2F/AX=8221h)
 03h	WORD	segment of start of main module (pattern) data
 05h 31	WORDs	segment of start of sample numbers 1-31
 43h	BYTE	pattern at which to start playing (00h to 7Fh)
 44h	BYTE	function
		00h play from pattern [offset 43h] until end of the song
		01h play indicated pattern [offset 43h] only
 45h	BYTE	Machine speed
		00h 10-12Mhz
		01h 12-25Mhz (default)
		02h 25Mhz+
		03h mix speed 10kHz (fast 8Mhz machines)
		04h mix speed 12kHz (10Mhz machines)
		05h mix speed 13kHz
		06h mix speed 8kHz (test for 8Mhz machines)
 46h	BYTE	allow >64k sample playing
		80h MOD has samples >64k in it
		else all samples in MOD are <64k
Notes:	Main module data and all samples must start on segment boundaries.
	In version 2.00 (ONLY) this function carries on playing (works in
	  the background)
SeeAlso: #02961

Top
2F8221 - INT 2F - MODRES - INSTALLATION CHECK
INT 2F - MODRES - INSTALLATION CHECK
	AX = 8221h
Return: AX = status
	    5722h successful
	    other MODRES not installed
	BX = BCD version number (BH = major, BL = minor)
	DX:CX -> Output Device structure (read-only) (see #02961)
SeeAlso: AX=8220h,AX=8222h,AX=8225h,AX=8227h

Format of Output Device structure [array]:
Offset	Size	Description	(Table 02961)
 00h 20 BYTEs	ASCIZ name of the output device
		(end of list if first char is FFh)
 14h	WORD	apparently always FFFFh
 16h	WORD	0000h if output device not available
		else first I/O port for the output device
 18h	WORD	second I/O port for the output device (for example
		  if it is stereo)
		000oh if only one port used or device is not available
 1Ah  7 BYTEs	???
SeeAlso: #02960,#02962

(Table 02962)
Values for MODRES v1.52 output device index:
 00h	PC speaker
 01h	D/A Converter on LPT1
 02h	D/A Converter on LPT2
 03h	D/A Converter on LPT3
 04h	D/A Converter on LPT4
 05h	D/A Converter on LPT1&LPT2 (stereo)
 06h	D/A Converter on LPT1&LPT2 (mono)
 07h	Sound Blaster (port 02x0h)
 08h	User Defined D/A (mono)
 09h	User Defined D/A (stereo)
 0Ah	Stereo-on-1
 0Bh	Disney SS su LPT1
 0Ch	Disney SS su LPT2
 0Dh	Disney SS su LPT3
 0Eh	Disney SS su LPT4
Note:	this list may vary between versions of MODRES

Top
2F8222 - INT 2F - MODRES - UNINSTALL
INT 2F - MODRES - UNINSTALL
	AX = 8222h
Return: AX = code segment of the program
Note:	this function does not release the TSRs memory; the caller must do so
SeeAlso: AX=8220h,AX=8221h,AX=8223h

Top
2F8223 - INT 2F - MODRES - PLAY SAMPLE
INT 2F - MODRES - PLAY SAMPLE
	AX = 8223h
	DX:CX -> SAMPARM structure (see #02963)
Return: AX = status
	    5722h succesful
	    2000h parameters out of range
	    other MODRES not installed
SeeAlso: AX=8221h,AX=8224h,AX=8225h,AX=8226h

Format of SAMPARM Structure:
Offset	Size	Description	(Table 02963)
 00h	WORD	signature 5053h ("SP" = SAMPARM)
 02h	WORD	segment of start of sample to play
 04h	WORD	length of sample (IN WORD)
 06h	BYTE	output device (see #02962 at INT 2F/AX=8221h)
 07h	WORD	pitch to play (see #02964)
 09h	BYTE	volume (from 00h to 40h)
 0Ah	WORD	loop start
 0Ch	WORD	loop length
 0Eh	BYTE	machine speed (see INT 2F/AX=8220h)
SeeAlso: #02960

(Table 02964)
Values for Pitch to play::
 C 0 is	06B0h
 C#0 is	06B0h / 2^(1/12)
 D 0 is	(06B0h / 2^(1/12)) / 2^(1/12)
 ...
Note:	C 1 is	06B0h / 2
	C 2 is	06B0h / 4
	etc.
SeeAlso: #02963

Top
2F8224 - INT 2F - MODRES - ???
INT 2F - MODRES - ???
	AX = 8224h
	DX:CX -> ???
Return: ???
SeeAlso: AX=8221h,AX=8223h,AX=8224h

Top
2F8225 - INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
	AX = 8225h
Return: AL = status
	   00h playing
	   01h reached end or stopped
	AH = speed of MOD
	BX = position within pattern 0000h-0400h
	CL = position within the song (track number)
SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8226h

Top
2F8226 - INT 2F - MODRES v2.00+ - STOP PLAYING
INT 2F - MODRES v2.00+ - STOP PLAYING
	AX = 8226h
Return: AX = status
	    5722h succesful
	    other MODRES not installed
Desc:	stops playing the MOD file before performing critical operations such
	  as disk accesses
SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8225h,AX=8227h

Top
2F8227 - INT 2F - MODRES - CONFIGURE
INT 2F - MODRES - CONFIGURE
	AX = 8227h
	BX = function
	    0001h set default playing speed (06h)
	    0002h select output device
		CL = output device (see #02962 at INT 2F/AX=8221h)
Return: AX = status
	    5722h succesful
	    2000h parameters out of range
	    other MODRES not installed
Note:	function 0001h should be called every time a new module is loaded
SeeAlso: AX=8220h,AX=8221h,AX=8222h,AX=8223h

Top
2FBC00BX3F3F - INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
	AX = BC00h
	BX = 3F3Fh ('??')
	CX = 0000h
	DX = 0000h
Return: if installed, BX XOR CX XOR DX = 4D56h ('MV')
Program: MVSOUND.SYS is a driver for the MediaVision ProAudio Spectrum family
	  of sound boards; its primary programmer was Bryan Crane
SeeAlso: AX=BC01h"MVSOUND",AX=BC02h,AX=BC03h,AX=BC04h,AX=BC06h"MVSOUND"

Top
2FBC01 - INT 2F - MediaVision MVSOUND.SYS - GET VERSION
INT 2F - MediaVision MVSOUND.SYS - GET VERSION
	AX = BC01h
	BX = magic value 6D20h ('m ')
	CX = magic value 2076h (' v')
	DX = magic value 2020h ('  ')
Return: BX = ASCII major version (leading zeros significant)
	CX = ASCII minor version (leading zeros significant)
SeeAlso: AX=BC00h/BX=3F3Fh

Top
2FBC02 - INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
	AX = BC02h
Return: AX = 4D56h ('MV')
	BX:DX -> state table
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC03h

Top
2FBC03 - INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
	AX = BC03h
Return: AX = 4D56h ('MV')
	BX:DX -> function table
	CX = ??? (000Eh)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC02h

Top
2FBC04 - INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
	AX = BC04h
Return: AX = 4D56h ('MV')
	BL = DMA channel
	CL = IRQ number
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND"

Top
2FBC06 - INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
	AX = BC06h
Return: AX = 4D56h ('MV')
	DX:BX -> status string (first byte 0Ch if no status message to display)
SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND",AX=BC0Bh"MVSOUND"

Top
2FBC0B - INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
	AX = BC0Bh
Return: BX:DX -> ASCIZ path for MVPROAS.EXE, 0000h:0000h if not available
SeeAlso: AX=BC00h/BX=3F3Fh

Top
2FBC0E - INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
	AX = BC0Eh
Return: BX = status
	    0000h on failure
		AX = 0000h
	    FFFFh if successful
		DX:AX -> prior INT 09 handler
Desc:	re-initialize INT 09 handler to re-enable hotkeys (e.g. after loading
	  KEYB)

Top
2FCD00BX464F - INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
	AX = CD00h
	BX = 464Fh ('FO')
	CX = 5254h ('RT')
	DX = 4520h ('E ')
Return: AL = FFh if installed
	    BX = 4155h ('AU')
	    CX = 4449h ('DI')
	    DX = 4F20h ('O ')
	    ES:SI -> program ID string
Program: ULTRAMID is a MIDI driver for the Gravis UltraSound which allows use
	  of AIL drivers with other software
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: INT 21/AX=FD12h,AX=CD00h/DX=4957h

Top
2FCD00DX4957 - INT 2F R - InterWave Game API - INSTALLATION CHECK
INT 2F R - InterWave Game API - INSTALLATION CHECK
	AX = CD00h
	DX = 4957h ('IW')
	SI = 5645h ('VE')
Return: AL = FFh if installed
	    DX = 4554h ('ET')
	    SI = 454Bh ('EK')
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h/BX=464Fh,AX=CD01h"InterWave",AX=CD21h"InterWave"
SeeAlso: AX=CD80h"InterWave"

Top
2FCD01BX0000 - INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
	AX = CD01h
	BX = 0000h
Return: BX = number of programs currently installed on the Game API
Desc:	get the number of programs supporting the InterWave Game API which are
	  currently installed in memory, which also forms the next program ID
	  number if the caller wishes to go resident on the API
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
Notes:	the first program to install on the IW Game API must use ID 00h
	the AMD-recommended implementation is for the handler to increment
	  BX and chain to the previous handler (if any), but this will fail
	  if TSRs are unloaded out-of-order
SeeAlso: AX=CD00h"InterWave",AX=CD02h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"

Top
2FCD02 - INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
	AX = CD02h
	BX = program identifier
Return: CX = program status
	    bit 0: using synthesizer
	    bit 1: using Codec
	    bit 2: supports at least one Game Device (see AX=CD21h,AX=CD22h)
	BX = supported API version (BCD, BH=major, BL=minor) if CX bit 2 set
	ES:DI -> ASCIZ identification string
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
Note:	ordinarily, an application will loop through all valid program
	  identifiers (as returned by AX=CD01h); if any of the installed
	  programs conflicts with the use the caller wishes to make of the
	  InterWave chip, it should be disabled with AX=CD03h first
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"

Top
2FCD03 - INT 2F R - InterWave Game API - SUSPEND PROGRAM
INT 2F R - InterWave Game API - SUSPEND PROGRAM
	AX = CD03h
	BX = installed program identifier
	CX = InterWave section to be released
	    0000h all
	    0001h synthesizer
	    0002h Codec
Return: AL = status
	    00h successful
		BX = base port
		CL = IRQ
		CH = DMA channel (Codec only)
	    else failed
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD04h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"

Top
2FCD04 - INT 2F R - InterWave Game API - WAKE PROGRAM
INT 2F R - InterWave Game API - WAKE PROGRAM
	AX = CD04h
	BX = installed program identifier
Return: AL = status
	    00h successful
	    else failed
Note:	this function should only be called after the program has been
	  suspended with AX=CD03h
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
SeeAlso: INT 7E/AL=84h"IWSBSDRV"

Top
2FCD05 - INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
	AX = CD05h
	BX = installed program identifier
Return: AL = status
	    00h successful
	    else failed
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD03h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"

Top
2FCD21 - INT 2F R - InterWave Game API - OPEN GAME DEVICE
INT 2F R - InterWave Game API - OPEN GAME DEVICE
	AX = CD21h
	BX = installed program identifier
	ES:DI -> ASCIZ device name
	    "MIDISIMPLE"
	    "MIDICOMPLEX"
	    "DIRECTCODEC"
Return: AL = status
	    00h successful
		DX = device handle
		---MIDISIMPLE and MIDICOMPLEX---
		BX = real-mode interrupt number (see #03074,#03075)
		---DIRECTCODEC---
		BX = base port
		CL = IRQ
		CH = DMA channel (04h = no DMA)
		SI = size of FIFO in bytes (0000h = use DMA)
	    nonzero failed (not supported or already in use)
	AH may be destroyed
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD22h"InterWave",AX=CD80h"InterWave"

(Table 03074)
Call MIDISIMPLE with:
	EAX = function number
	    0001h MIDI byte out
		BL = MIDI byte to send
	    0002h MIDI string out
		ECX = length of MIDI string in bytes
		ES:EDI -> MIDI string to send (should not include timing info)
	DX = device handle
	INT xxh (as returned by AX=CD21h)
Return: EAX = status
	    00000000h if successful
	    FFFFFFFFh on error (bad handle)
SeeAlso: #03075,INT 7E/AX=0001h"IWSBSDRV",INT 7E/AX=0002h"IWSBSDRV"

(Table 03075)
Call MIDICOMPLEX with:
	EAX = function number
	    ??? (specification is still in development)
	DX = device handle
	INT xxh (as returned by AX=CD21h)
Return: EAX = status
	    00000000h if successful
	    FFFFFFFFh on error (bad handle)
SeeAlso: #03074

Top
2FCD22 - INT 2F R - InterWave Game API - CLOSE GAME DEVICE
INT 2F R - InterWave Game API - CLOSE GAME DEVICE
	AX = CD22h
	BX = installed program identifier
	DX = device handle (from AX=CD21h)
Return: AL = status
	    00h successful
	    FFh inavlid handle or device is not open
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"

Top
2FCD80 - INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
	AX = CD80h
Return: nothing
Desc:	called by an application controlling the InterWave chip's mixer
	  whenever the mixer's settings are changed
Range:	AH=CDh-ECh, selected by scanning for an available multiplex number
Note:	when an application intercepts this function call, it must read the
	  new mixer settings from the InterWave chip
SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD22h"InterWave"

Top
2FFBFBES0000 - INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK
INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK
	AX = FBFBh
	ES = 0000h
Return: ES nonzero if installed
	    ES:BX -> entry point data structure (see #03138)
SeeAlso: INT 80/BX=0000h,INT F3"SoundBlaster"

Format of SoundBlaster entry point data structure:
Offset	Size	Description	(Table 03138)
 00h  3 BYTEs	signature "FB "
 03h	BYTE	driver major version number???
 04h	DWORD	speech driver entry point (see #03139)
 08h 24 BYTEs	???
 20h  ? BYTEs	data buffer for calling speech driver
		  (can be 117 bytes or more)

(Table 03139)
Call SoundBlaster speech driver entry point with:
	AL = function
	    07h speak a string
		data buffer (see #03138) contains:
			BYTE  length of string
		      N BYTEs string to speak

Top
4D - INT 4D - IBM - M-Audio Adapter SUPPORT
INT 4D - IBM - M-Audio Adapter SUPPORT
	no details available; supposedly documented in IBM form G571-0203-01

Top
62C0 - INT 62 U - GWBTSR - API
INT 62 U - GWBTSR - API
	AH = C0h
	AL = function
	    00h installation check
		Return: AX = 00FFh if installed
	    01h ???
Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
	  sound card (OEM version of Aztech Sound Galaxy)
Index:	installation check;GWBTSR

Top
65 - INT 65 - Ad Lib SOUND.COM - INTERFACE
INT 65 - Ad Lib SOUND.COM - INTERFACE
	SI = function number (also see separate entries below)
	    0000h Init
	    0002h RelTimeStart
	    0003h SetState
	    0004h GetState
	    0005h Flush
	    0006h SetMode
	    0007h GetMode
	    0008h SetRelVolume
	    0009h SetTempo
	    000Ah SetTranspose
	    000Bh GetTranspose
	    000Ch SetActVoice
	    000Dh GetActVoice
	    000Eh PlayNoteDel
	    000Fh PlayNote
	    0010h SetTimbre
	    0011h SetPitch
	    0012h SetTickBeat
	    0013h NoteOn
	    0014h NoteOff
	    0015h Timbre
	    0016h SetPitchBend
	    0017h WaveForm
	ES:BX -> arguments
InstallCheck:	test for the signature block immediately preceding the
	  interrupt handler (see #03516)
SeeAlso: SI=8000h
Index:	installation check;Ad Lib SOUND.COM

Format of AdLib signature block:
Offset	Size	Description	(Table 03516)
 00h	WORD	version number
 02h 19 BYTEs	"SOUND-DRIVER-AD-LIB"
 15h	BYTE	01h
 16h	BYTE	01h
 17h	BYTE	00h

Top
65----SI0000 - INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
	SI = 0000h

Top
65----SI0003 - INT 65 - Ad Lib SOUND.COM - SET STATE
INT 65 - Ad Lib SOUND.COM - SET STATE
	SI = 0003h
	ES:BX -> WORD new state (0000h disabled, 0001h enabled)
SeeAlso: SI=0004h

Top
65----SI0004 - INT 65 - Ad Lib SOUND.COM - GET STATE
INT 65 - Ad Lib SOUND.COM - GET STATE
	SI = 0004h
Return: AX = status
	    0000h all done playing sounds
	    else  still playing sounds
SeeAlso: SI=0003h

Top
65----SI0006 - INT 65 - Ad Lib SOUND.COM - SET MODE
INT 65 - Ad Lib SOUND.COM - SET MODE
	SI = 0006h
	ES:BX -> WORD new mode (0000h melodic, 0001h percussive)
SeeAlso: SI=0007h

Top
65----SI0007 - INT 65 - Ad Lib SOUND.COM - GET MODE
INT 65 - Ad Lib SOUND.COM - GET MODE
	SI = 0007h
Return: AX = mode
	    0000h melodic
	    0001h percussive
SeeAlso: SI=0006h

Top
65----SI000C - INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
	SI = 000Ch
	ES:BX -> WORD voice = 0000h to 0008h
SeeAlso: SI=000Dh

Top
65----SI000D - INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
	SI = 000Dh
Return: AX = voice (0000h to 0008h)
SeeAlso: SI=000Ch

Top
65----SI8000 - INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
	SI = 8000h
Return: DX:AX -> internal data structures
Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
	  Pro Audio Spectrum sound boards
SeeAlso: SI=8001h

Top
65----SI8001 - INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
	SI = 8001h
Return: AX = ???
	DX = number of voices??? (09h or 0Bh)
SeeAlso: SI=8000h

Top
65----SI8002 - INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
	SI = 8002h
SeeAlso: SI=8003h

Top
65----SI8003 - INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
	SI = 8003h
SeeAlso: SI=8002h

Top
65----SI8004 - INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
	SI = 8004h
Return: AX = ??? (0280h)
	DX = ??? (01A0h)

Top
65----SI8005 - INT 65 U - Media Vision FM.COM v4.1a+ - ???
INT 65 U - Media Vision FM.COM v4.1a+ - ???
	SI = 8005h
	???
Return: ???
SeeAlso: SI=8000h

Top
660688 - INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
	AX = 0688h
	DS:SI -> SNDSTRUC (see #03519)
Return: ???
Program: The IBMSND driver is part of John W. Ratcliff's
	   The IBM Digitized Sound Package
	DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.
InstallCheck:	test for a valid signature string six bytes prior to the
	  interrupt handler; this string may be either "KERN" or "MIDI" (in
	  the latter case, call AX=0701h to determine whether IBMSND is
	  installed)
SeeAlso: AX=068Bh,AX=068Fh,AX=0701h

Format of IBMSND driver SNDSTRUC:
Offset	Size	Description	(Table 03519)
 00h	DWORD	-> audio data
 04h	WORD	length of audio data in bytes
 06h	DWORD	-> playback status flag
 0Ah	WORD	playback frequency

Top
660689 - INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
	AX = 0689h
Return: AX = status
	    0000h no sound playing
	    0001h sound effect is currently playing
	---DIGPAK---
	BX = version number (v3.1+)
	DX = looping status
	    0000h no sound looping
	    0001h sound effect is currently looping
SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
Index:	version check;DIGPAK

Top
66068A - INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
	AX = 068Ah
	DS:SI -> SNDSTRUC (see #03519)
Desc:	convert audio data into output hardware format
SeeAlso: AX=068Bh

Top
66068B - INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
	AX = 068Bh
	DS:SI -> SNDSTRUC (see #03519)
Return: AX = ???
SeeAlso: AX=0688h,AX=068Ah,AX=068Fh

Top
66068C - INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
	AX = 068Ch
Return: AX = capabilities (see #03520)
	DX = playback rate if fixed-frequency playback
	---DIGPAK---
	BX:CX -> ASCIZ ID string
SeeAlso: AX=0689h,AX=068Dh

Bitfields for IBMSND driver capabilities:
Bit(s)	Description	(Table 03520)
 0	can play audio in background
 1	data is massaged for output device
 2	driver plays at fixed frequency, resampling input data to fit
 3	driver uses timer interrupt
---DIGPAK---
 4	device supports timer sharing
 5	supports looped sounds and pending
 6	supports stereo panning
 7	supports 8-bit PCM stereo playback
 8	supports audio recording
 9	supports DMA bakcfilling

Top
66068D - INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
	AX = 068Dh
Return: AX = current playback address
Desc:	determine what point in the audio data the playback has reached, for
	  synchronization with video or animation effects
Notes:	this function applies to background playback only
	the reported address may be an approximation rather than the exact
	  address
SeeAlso: AX=068Ch,AX=0691h

Top
66068E - INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
	AX = 068Eh
	BX:DX -> callback function
	    0000h:0000h to disable callback
	DS = value to load into DS when calling the callback function
Desc:	specify the function to be called when playback of a sound effect is
	  completed
Note:	the callback function will typically be called during a hardware
	  interrupt, so all the usual precautions should be taken except for
	  preserving registers
SeeAlso: AX=0691h

Top
66068F - INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
	AX = 068Fh
Desc:	cause any currently-playing sound effect to be terminated
SeeAlso: AX=0688h,AX=068Bh

Top
660690 - INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
	AX = 0690h
	BX = IRQ
	CX = base address
	DX = other setup value (device-dependent???)

Top
660691 - INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
	AX = 0691h
Return: AX:DX -> current callback function
	BX = original caller's DS register
Program: The IBMSND driver is part of John W. Ratcliff's
	   The IBM Digitized Sound Package
	DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.
SeeAlso: AX=068Eh

Top
660693 - INT 66 - DIGPAK - SET TIMER DIVISOR RATE
INT 66 - DIGPAK - SET TIMER DIVISOR RATE
	AX = 0693h
	DX = rate
Program: DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.

Top
660694 - INT 66 - DIGPAK - PLAY PREFORMATTED DATA
INT 66 - DIGPAK - PLAY PREFORMATTED DATA
	AX = 0694h
	DS:SI -> Sound Data structure (see #03519)
Return: AX = status???

Top
660695 - INT 66 - DIGPAK - POST AUDIO PENDING
INT 66 - DIGPAK - POST AUDIO PENDING
	AX = 0695h
	DS:SI -> Sound Data structure (***)
Return: AX = status
	    0000h sound started playing
	    0001h sound was posted as pending to play
	    0002h sound effect already pending, this one not posted
SeeAlso: AX=0696h

Top
660696 - INT 66 - DIGPAK - GET AUDIO PENDING STATUS
INT 66 - DIGPAK - GET AUDIO PENDING STATUS
	AX = 0696h
Return: AX = status
	    0000h no sound is playing
	    0001h sound playing, and a sound is pending
	    0002h sound playing, no sound pending
SeeAlso: AX=0695h

Top
660697 - INT 66 - DIGPAK - SET STEREO PANNING
INT 66 - DIGPAK - SET STEREO PANNING
	AX = 0697h
	DX = panning position (0 = right, 127 = left)
Return: AX = status
	    0000h command ignored (not supported)
	    0001h panning set

Top
660698 - INT 66 - DIGPAK - SET PLAY MODE
INT 66 - DIGPAK - SET PLAY MODE
	AX = 0698h
	DX = playback mode
	    0000h 8-bit PCM
	    0001h 8-bit stereo PCM
	    0002h 16-bit PCM
	    0003h 16-bit stereo PCM
Return: AX = status
	    0000h command ignored
	    0001h mode set

Top
660699 - INT 66 - DIGPAK - GET ADDRESSES
INT 66 - DIGPAK - GET ADDRESSES
	AX = 0699h
Return: AX = pending address
	BX = semaphore address

Top
66069A - INT 66 - DIGPAK - SET RECORD MODE
INT 66 - DIGPAK - SET RECORD MODE
	AX = 069Ah
	DX = recording mode
	    0000h turn audio recording on
	    0001h turn audio recording off
Return: AX = status
	    0000h command ignored
	    0001h audio recording mode set

Top
66069B - INT 66 - DIGPAK - STOP NEXT LOOP
INT 66 - DIGPAK - STOP NEXT LOOP
	AX = 069Bh

Top
66069C - INT 66 - DIGPAK - SET DMA BACKFILL MODE
INT 66 - DIGPAK - SET DMA BACKFILL MODE
	AX = 069Ch
	DX = mode
	    0000h turn backfill mode on
	    0001h turn backfill mode off
Return: AX = status
	    0000h command ignored
	    0001h backfill mode set
SeeAlso: AX=069Dh,AX=069Eh

Top
66069D - INT 66 - DIGPAK - REPORT DMA COUNTER
INT 66 - DIGPAK - REPORT DMA COUNTER
	AX = 069Dh
Return: AX = DMA counter
SeeAlso: AX=069Eh

Top
66069E - INT 66 - DIGPAK - VERIFY DMA BLOCK
INT 66 - DIGPAK - VERIFY DMA BLOCK
	AX = 069Eh
	CX = length of buffer
	ES:BX -> buffer containing sound data
Return: AX = status
	    0000h block crosses 64K bounadary
	    0001h block is OK
SeeAlso: AX=069Dh

Top
66069F - INT 66 - DIGPAK - SET PCM VOLUME
INT 66 - DIGPAK - SET PCM VOLUME
	AX = 069Fh
	BX = left channel volume (0-100)
	CX = right channel volume (0-100)
Return: AX =  status
	    0000h command ignored
	    0001h volume set

Top
6606A0 - INT 66 - DIGPAK - SET DPMI MODE
INT 66 - DIGPAK - SET DPMI MODE
	AX = 06A0h
	DX = mode
	    0000h 32-bit register addressing on
	    0001h 32-bit register addressing off
SeeAlso: INT 31/AX=0400h

Top
660700 - INT 66 - MIDPAK - UNINSTALL
INT 66 - MIDPAK - UNINSTALL
	AX = 0700h
Note:	this function should NOT be called by applications
Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
	  Incorporated.

Top
660701 - INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
	AX = 0701h
Return: AX = digitized sound capabilities
	    0000h if digitized sound driver (functions 06xxh) not available
InstallCheck:	test for the signature "MIDI" six bytes before the interrupt
	  handler
Note:	also supported by MIDPAK, the successor to the Digitized Sound
	  Package's MIDI driver
SeeAlso: AX=0688h

Top
660702 - INT 66 - MIDPAK - PLAY SEQUENCE
INT 66 - MIDPAK - PLAY SEQUENCE
	AX = 0702h
	BX = Sequence number
Return: AX = status
	    0000h Sequence is being played
	    0001h Sequence not available
SeeAlso: AX=0703h,AX=0705h

Top
660703 - INT 66 - MIDPAK - SEGUE SEQUENCE
INT 66 - MIDPAK - SEGUE SEQUENCE
	AX = 0703h
	BX = sequence number
	CX = activation code (FFFFh is next trigger)
Return: ???

Top
660704 - INT 66 - MIDPAK - REGISTER XMIDI
INT 66 - MIDPAK - REGISTER XMIDI
	AX = 0704h
	CX:BX -> XMIDI sequence data
	DI:SI = length of XMIDI data
Return: AX = status
	    0000h unable to register XMIDI data
	    0001h XMIDI file registered resident
	    0002h XMIDI file was registered to the application

Top
660705 - INT 66 - MIDPAK - STOP MIDI
INT 66 - MIDPAK - STOP MIDI
	AX = 0705h
SeeAlso: AX=0702h,AX=0709h

Top
660706 - INT 66 O - MIDPAK - REMAP CHANNEL
INT 66 O - MIDPAK - REMAP CHANNEL
	AX = 0706h
	BX = sequence
	CX = physical

Top
660707 - INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
	AX = 0707h
Return: AX = count of number of callbacks since last reset
	DX = ID
SeeAlso: AX=0708h,AX=0713h

Top
660708 - INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
	AX = 0708h
SeeAlso: AX=0707h,AX=0713h

Top
660709 - INT 66 O - MIDPAK - MIDI SLEEP
INT 66 O - MIDPAK - MIDI SLEEP
	AX = 0709h
SeeAlso: AX=070Ah

Top
66070A - INT 66 O - MIDPAK - MIDI AWAKE
INT 66 O - MIDPAK - MIDI AWAKE
	AX = 070Ah
SeeAlso: AX=0709h

Top
66070B - INT 66 - MIDPAK - RESUME PLAYING
INT 66 - MIDPAK - RESUME PLAYING
	AX = 070Bh
SeeAlso: AX=070Ch

Top
66070C - INT 66 - MIDPAK - GET SEQUENCE STATUS
INT 66 - MIDPAK - GET SEQUENCE STATUS
	AX = 070Ch
Return: AX = status
	    0000h sequence stopped
	    0001h sequence playing
	    0002h sequence done
SeeAlso: AX=070Bh

Top
66070D - INT 66 - MIDPAK - REGISTER XMIDI FILE
INT 66 - MIDPAK - REGISTER XMIDI FILE
	AX = 070Dh
	CX:BX -> ASCII filename
SeeAlso: AX=0704h,AX=0710h

Top
66070E - INT 66 - MIDPAK - GET RELATIVE VOLUME
INT 66 - MIDPAK - GET RELATIVE VOLUME
	AX = 070Eh
Return: AX = current volume
SeeAlso: AX=070Fh

Top
66070F - INT 66 - MIDPAK - SET RELATIVE VOLUME
INT 66 - MIDPAK - SET RELATIVE VOLUME
	AX = 070Fh
	BX = new volume
	CX = time
SeeAlso: AX=070Eh

Top
660710 - INT 66 - MIDPAK - LOAD MIDPAK DRIVER
INT 66 - MIDPAK - LOAD MIDPAK DRIVER
	AX = 0710h
	BX = segment of .ADV driver
	CX = 0000h (offset must be zero)
	DX:SI -> .AD driver
SeeAlso: AX=070Dh

Top
660711 - INT 66 - MIDPAK - POLL MIDPAK
INT 66 - MIDPAK - POLL MIDPAK
	AX = 0711h
Return: AX = ???
	???
SeeAlso: AX=0712h

Top
660712 - INT 66 - MIDPAK - GET MIDI CLOCK
INT 66 - MIDPAK - GET MIDI CLOCK
	AX = 0712h
Return: AX:DX = clock counter
	CX:BX = clock address
SeeAlso: AX=0711h,AX=0713h

Top
660713 - INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
	AX = 0713h
Return: AX:DX -> trigger counter address
SeeAlso: AX=0707h,AX=0712h,AX=0714h

Top
660714 - INT 66 - MIDPAK - GET EVENT ID ADDRESS
INT 66 - MIDPAK - GET EVENT ID ADDRESS
	AX = 0714h
Return: AX:DX -> event ID
SeeAlso: AX=0713h,AX=0716h

Top
660716 - INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
	AX = 0716h
Return: AX = current sequence number
SeeAlso: AX=0702h
Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
	  Incorporated.

Top
67DEE1BX0C55 - INT 67 - "SB Live!" Sound Blaster 16 Emulation Driver - INSTALLATION CHECK
INT 67 - "SB Live!" Sound Blaster 16 Emulation Driver - INSTALLATION CHECK
	AX = DEE1h
	BX = 0C55h
Return: BL = AAh if installed

Top
78 - INT 78 - ULTRAMID - API
INT 78 - ULTRAMID - API
	AX = function
	--- digital functions ---
	    0000h start digital
		ES:DI -> Sound Structure
		Return: AX = voice used
	    0001h play next buffer
		ES:DI -> Sound Structure
	    0002h set panning
		BX = pan
		CX = voice
	    0003h set volume
		BX = volume
		CX = voice
	    0004h set rate (not yet implemented)
	    0005h pause digital
		CX = voice
	    0006h restart digital
		CX = voice
	    0007h stop digital
		CX = voice
	    0008h get digital position
		CX = voice
		Return: AX:DX -> position in PC buffer
	    0009h get voice status (not yet implemented)
	--- MIDI functions ---
	    000Ah load MIDI patches
		ES:DI -> MIDI track just after the Mtrk header
		BX:DX = length of MIDI track
	    000Bh load XMIDI patches
		ES:DI -> event buffer including the EVNT header
	    000Ch load patch
		CX = MIDI number of patch
	    000Dh unload patch
		CX = MIDI number of patch
	    000Eh start sequence
	    000Fh unload all patches
	    0010h MIDI out byte
		CX = MIDI byte
	    0011h MIDI out string
		CX = length
		ES:DI -> string of MIDI data
	    0012h all notes off
	--- resource functions ---
	    0013h allocate memory
		BX:DX = size of GUS memory needed
		Return: AX:DX = address of memory, or 0000:0000 if not avaiable
	    0014h free memory
		BX:DX = address of memory to be freed
	    0015h uninstall
	    0016h sem enter
	    0017h sem leave
	    0018h add external semaphore
		BX:DX -> external semaphore
	    0019h clear external semaphore
		BX:DX -> external semaphore
	    001Ah application start
	    001Bh application end
	--- v1.12 ---
	    001Ch ???
	    001Dh ???
	    001Eh ???
	    001Fh ???
Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
	   through the Gravis UltraSound (GUS)
InstallCheck:	test for the signature "ULTRAMID" at offset 0103h in the
	  interrupt handler's segment
Range:	INT 78 to INT 7F
SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E/AH=00h"SBOS",INT 7E/AX=00FEh"SBOS"
Index:	uninstall;UltraMID

Top
7E00 - INT 7E - MaxSBOS v0.21 - GET ???
INT 7E - MaxSBOS v0.21 - GET ???
	AH = 00h
Return: DX:AX -> ???
SeeAlso: AH=01h,AH=02h,AH=03h

Top
7E0001 - INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
	AX = 0001h
	DX = game device handle
	BL = MIDI byte to send???
	???
Return: EAX = status
	    00000000h if successful
	    FFFFFFFFh on error (function disabled)
Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card
	  emulator for the Gravis UltraSound Plug-and-Play
Note:	this function is only supported if the MIDISIMPLE device has been
	  opened via the InterWave Game API (see INT 2F/AX=CD21h)
SeeAlso: AX=0002h,INT 2F/AX=CD21h,#03074

Top
7E0002 - INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
	AX = 0002h
	DX = game device handle
	ES:EDI -> buffer containing MIDI string to be sent
	ECX = length of buffer in bytes
Return: EAX = status
	    00000000h if successful
	    FFFFFFFFh on error (function disabled)
Note:	this function is only supported if the MIDISIMPLE device has been
	  opened via the InterWave Game API (see INT 2F/AX=CD21h)
SeeAlso: AX=0001h,INT 2F/AX=CD21h,#03074

Top
7E00F6 - INT 7E - SBOS v3.82 - SET ???
INT 7E - SBOS v3.82 - SET ???
	AX = 00F6h
	BL = ??? (max. 20h, value will be set to 20h if BL greater)
Return: AX=00F9h,AX=00FEh

Top
7E00F7 - INT 7E - SBOS v3.82 - GET ???
INT 7E - SBOS v3.82 - GET ???
	AX = 00F7h
Return: AX = status
	    0000h failed
	    0001h successful
		BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
		CH = ???
		CL = ???
SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh

Top
7E00F9 - INT 7E - SBOS v3.82 - SET ???
INT 7E - SBOS v3.82 - SET ???
	AX = 00F9h
	BX = ???
SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh

Top
7E00FB - INT 7E - SBOS v3.82 - SET ???
INT 7E - SBOS v3.82 - SET ???
	AX = 00FBh
	BL = ???
SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh

Top
7E00FD - INT 7E - SBOS v3.82 - SET ???
INT 7E - SBOS v3.82 - SET ???
	AX = 00FDh
	BL = ??? (max. 20h, value will be set to 20h if BL greater)
SeeAlso: AX=00F9h,AX=00FEh

Top
7E00FE - INT 7E - SBOS v3.82 - UNINSTALL
INT 7E - SBOS v3.82 - UNINSTALL
	AX = 00FEh
Return: AX = status
	    0000h successful
	    00FCh unable to unhook INT 21
	    00FDh unable to unhook INT 09
	    00FEh unable to release memory
Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
InstallCheck:	test for the ASCII signature "SBOS" at offset 0Ah in the
	  interrupt handler's segment (similar to one of the possible EMS
	  installation checks)
Range:	SBOS may use INT 78-INT 7F
Note:	this function may not be called if any SBOS vectors have been hooked
SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"

Top
7E00FF - INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
	AX = 00FFh
	BL = new interrupt vector to hook
Return: BX = 03CDh if supported
Desc:	unhooks the current interrupt handler for ???, and reconnects it to the
	  specified new interrupt number
SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh

Top
7E01 - INT 7E - MaxSBOS v0.21 - ???
INT 7E - MaxSBOS v0.21 - ???
	AH = 01h
	???
Return: ???
Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
	  UltraSound MAX
Range:	INT 78-INT 7F, selected by commandline parameter
Note:	the installation check is the same as for 'regular' SBOS (see AX=00FEh)
	  although the API in v0.21 does not provide the functions present in
	  the older SBOS
SeeAlso: AX=00FEh,AH=02h,AH=03h

Top
7E02 - INT 7E - MaxSBOS v0.21 - ???
INT 7E - MaxSBOS v0.21 - ???
	AH = 02h
Return: AX = FFFFh
SeeAlso: AX=00FEh,AH=01h,AH=03h

Top
7E03 - INT 7E - MaxSBOS v0.21 - NOP
INT 7E - MaxSBOS v0.21 - NOP
	AH = 03h
Return: nothing
SeeAlso: AX=00FEh,AH=01h,AH=02h

Top
7E--80 - INT 7E - IWSBSDRV v1.41 - GET ???
INT 7E - IWSBSDRV v1.41 - GET ???
	AL = 80h
Return: DX:AX -> ???
SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h

Top
7E--81 - INT 7E - IWSBSDRV v1.41 - ???
INT 7E - IWSBSDRV v1.41 - ???
	AL = 81h
	???
Return: ???
SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h

Top
7E--82 - INT 7E - IWSBSDRV v1.41 - GET ???
INT 7E - IWSBSDRV v1.41 - GET ???
	AL = 82h
Return: AX = ??? (FFFFh)
SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h

Top
7E--83 - INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
	AL = 83h
	???
Return: ???
SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h
SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"

Top
7E--84 - INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
	AL = 84h
Return: AL = status
	    00h successful
	    else failed
SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h
SeeAlso: INT 2F/AX=CD04h"InterWave"

Top
7E--85 - INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
	AL = 85h
Return: nothing
SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h

Top
7E--86 - INT 7E - IWSBSDRV v1.41 - HOOK INT 21
INT 7E - IWSBSDRV v1.41 - HOOK INT 21
	AL = 86h
Return: AX,BX,DX,ES destroyed
SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h

Top
7E--87 - INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
	AL = 87h
Return: AX,DX destroyed
SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h

Top
7F4150BHC1 - INT 7F U - Voyetra - AAPISG - API
INT 7F U - Voyetra - AAPISG - API
	AX = 4150h ('AP')
	BH = C1h
	BL = function (00h-13h)
	    00h initialize (fails except first time called)
	???
Return: AX = status???
	    0000h successful
	    0001h failed
Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
BUG:	the function range check uses JL instead of JB, so it will cause a
	  crash if BL >= 80h on entry
SeeAlso: AX=4331h,AX=564Dh,AX=5658h

Top
7F4331BHC1 - INT 7F U - Voyetra - VAPISG - API
INT 7F U - Voyetra - VAPISG - API
	AX = 4331h ('C1')
	BH = C1h
	BL = function (00h-7Ah)
	???
Return: ???
Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
	  sound board
SeeAlso: AX=4150h,AX=564Dh,AX=5658h

Top
7F564DBHC1 - INT 7F U - Voyetra Multimedia Player - VMP.EXE API
INT 7F U - Voyetra Multimedia Player - VMP.EXE API
	AX = 564Dh ('VM')
	BH = C1h
	BL = function (00h-1Bh)
	    00h ???
		Return: CF clear
			AX = 0000h
	???
Return: AX = FFFFh if invalid function
	???
SeeAlso: AX=4331h,AX=5658h

Top
7F5658BHC1 - INT 7F U - Voyetra - VAPISG - API
INT 7F U - Voyetra - VAPISG - API
	AX = 5658h ('VX')
	BH = C1h
	BL = function (00h-1Bh)
	???
Return: ???
Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
	  sound board
SeeAlso: AX=4331h,AX=564Dh

Top
80----BL00 - INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
	BL = 00h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: AX = initialization result (see #03972)
Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
	  which provides access to multiple drivers for the SoundBlaster
	  board through a single interface
Range:	INT 80h to INT BFh, selected automatically
Note:	the SBSIM installation check consists of testing for the signature
	  "SBSIM" at offset 103h in the interrupt handler's segment.
SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
SeeAlso: INT 80/BX=0000h"SBSIM"

(Table 03972)
Values for SBSIM error code:
 01h	busy--currently in use
 02h	bad driver specified
 03h	invalid function
 04h	voice process already active
 05h	couldn't start CT-VOICE
 06h	couldn't start CTVDSK
 07h	invalid SBSIM handle
 08h	buffer not initialized yet
 09h	bad filename
 0Ah	bad file handle
 0Bh	driver not started yet
 0Ch	XMS driver not installed
 0Dh	no free SBSIM handles
 0Eh	bad file type
 0Fh	couldn't free XMS block
 10h	invalid source selected
 11h	get pan position failed
 12h	set pan position failed
 13h	set volume failed
 14h	couldn't start fade/pan
 15h	couldn't stop fade/pan
 16h	couldn't pause fade/pan
 17h	not a fade/pan operation
 18h	bad mode for fade/pan
 19h	couldn't start fade/pan
 1Ah	source not fading/panning
 1Bh	FM or MIDI already playing
 1Ch	bad MIDI mapper format

Top
80----BL01 - INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
	BL = 01h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: AX = result (see #03972)
SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"

Top
80----BL02 - INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
	BL = 02h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: nothing
SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"

Top
80----BL03 - INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
	BL = 03h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: nothing
SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
SeeAlso: INT 80/BL=05h

Top
80----BL04 - INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
	BL = 04h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: nothing
SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"

Top
80----BL05 - INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
	BL = 05h
	BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
Return: AX = status
SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"

Top
80----BX0000 - INT 80 - SoundBlaster SBFM driver - GET VERSION
INT 80 - SoundBlaster SBFM driver - GET VERSION
	BX = 0000h
Return: ???
Note:	SBFM installs at a free interrupt in the range 80h through BFh
SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h

Top
80----BX0000 - INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
	BX = 0000h
Return: AX = version (AH = major, AL = minor)
Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
	  which provides access to multiple drivers for the SoundBlaster
	  board through a single interface
Range:	INT 80h to INT BFh, selected automatically
Note:	the SBSIM installation check consists of testing for the signature
	  "SBSIM" at offset 103h in the interrupt handler's segment.
SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
SeeAlso: INT 80/BL=00h"SBSIM"
Index:	installation check;SBSIM|installation check;SoundBlaster

Top
80----BX0001 - INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
	BX = 0001h
	DX:AX -> music status byte
SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"

Top
80----BX0001 - INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
	BX = 0001h
Return: AX = bit flags for loaded drivers (see #03973)
SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"

Bitfields for SBSIM loaded drivers:
Bit(s)	Description	(Table 03973)
 0	FM
 1	double disk-buffered voice driver (DDBV)
 2	memory voice driver
 3	auxiliary driver (mixer)
 4	MIDI

Top
80----BX0002 - INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
	BX = 0002h
	CX = number of instruments
	DX:AX -> instrument table
SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"

Top
80----BX0002 - INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
	BX = 0002h
	AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
Return: CF clear if successful
	    DX:AX -> entry point
	CF set on error
SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"

Top
80----BX0003 - INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
	BX = 0003h
	AX = clock rate divisor (1193180 / desired frequency in Hertz)
	    FFFFh to restore to 18.2 Hz
SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"

Top
80----BX0004 - INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
	BX = 0004h
	AX = driver clock rate divisor (1193180 / frequency in Hertz)
Note:	default frequency is 96 Hz
SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"

Top
80----BX0005 - INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
	BX = 0005h
	AX = semi-tone offset
SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"

Top
80----BX0005 - INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
	BX = 0005h
	AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
Return: CF clear if successful
	    DX:AX -> buffer
	    CX = buffer size in K
	CF set on error
Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
	  which provides access to multiple drivers for the SoundBlaster
	  board through a single interface
Range:	INT 80h to INT BFh, selected automatically
Note:	the SBSIM installation check consists of testing for the signature
	  "SBSIM" at offset 103h in the interrupt handler's segment.
SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"

Top
80----BX0006 - INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
	BX = 0006h
	DX:AX -> music block
Return: AX = status
	    0000h successful
	    0001h music already active
SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h

Top
80----BX0007 - INT 80 - SoundBlaster SBFM driver - STOP MUSIC
INT 80 - SoundBlaster SBFM driver - STOP MUSIC
	BX = 0007h
Return: AX = status
	    0000h successful
	    0001h music not active
SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h

Top
80----BX0008 - INT 80 - SoundBlaster SBFM driver - RESET DRIVER
INT 80 - SoundBlaster SBFM driver - RESET DRIVER
	BX = 0008h
Return: AX = status
	    0000h successful
	    0001h music is active
SeeAlso: BX=0000h"SBFM"

Top
80----BX0009 - INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
	BX = 0009h
Return: AX = status
	    0000h successful
	    0001h no music active
SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h

Top
80----BX000A - INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
	BX = 000Ah
Return: AX = status
	    0000h successful
	    0001h no music paused
SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"

Top
80----BX000B - INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
	BX = 000Bh
	DX:AX -> trap routine
SeeAlso: BX=0000h"SBFM"

Top
80----BX0400 - INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
	BX = 0400h
	AX = sound source (see #03974)
Return: CF clear if successful
	    AX = volume
	CF set on error
	    AX = error code (see #03972 at INT 80/BL=00h)
SeeAlso: BX=0401h"SBSIM"

(Table 03974)
Values for SBSIM sound source:
 00h	master volume
 01h	voice
 02h	FM
 03h	CD
 04h	line in
 05h	microphone

Top
80----BX0401 - INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
	BX = 0401h
	AX = sound source (see #03974)
	DX = new volume
Return: AX = result (0000h = success) (see also INT 80/BL=00h)
SeeAlso: BX=0400h"SBSIM"

Top
810200 - INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
	AX = 0200h
	BX = PSP segment
	SI = ??? (data area)
Return: AX = status (see #03975)
	BL = emulation state
	    bit 1   Emulation is on
	    bit 2   Emulation is off
Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
	  emulator for the Gravis UltraSound
Range:	INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an
	  interrupt with vector 0000h:0000h
SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h

(Table 03975)
Values for MegaEm status:
 0000h	successful
 0001h	invalid command line optie
 0002h	display options
 0003h	???
 0004h	invalid number of voices specified
 0005h	could not load enough patches to provide acceptable emulation
 0006h	to many warnings on patch loading
 0007h	??? (not used anymore)
 0008h	/CO and SCSI don't work together
 0009h	invalid music volume
 000Ah	invalid master volume
 000Bh	/SC switch is no longer valid
 0100h	??? (some error on patch loading)

Top
810202 - INT 81 - Gravis UltraSound - MegaEm - ???
INT 81 - Gravis UltraSound - MegaEm - ???
	AX = 0202h
Return: AX = ???
SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h

Top
810300 - INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
	AX = 0300h
Return: AX = ???
SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h

Top
810400 - INT 81 - Gravis UltraSound - MegaEm - ???
INT 81 - Gravis UltraSound - MegaEm - ???
	AX = 0400h
	BX = ??? (segment)
Return: AX = ???
	BX = ???
Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
	  emulator for the Gravis UltraSound
SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h

Top
812010 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
	AX = 2010h
	???
Return: ???
Note:	MegaEm calls this function from its INT 78 handler, and then
	  immediately returns (via RETF in v3.10, thus leaving the flags on
	  the stack); this permits it to operate while hooking only one
	  interrupt through the memory manager in protected mode
SeeAlso: AX=2011h,AX=2012h

Top
812011 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
	AX = 2011h
	???
Return: ???
Note:	MegaEm calls this function from its NMI (INT 02) handler, and then
	  immediately returns; this permits it to operate while hooking only
	  one interrupt through the memory manager in protected mode
SeeAlso: AX=2010h,AX=2012h

Top
812012 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
	AX = 2012h
	???
Return: ???
Note:	MegaEm calls this function from its GUS IRQ handler, and then
	  immediately returns; this permits it to operate while hooking only
	  one interrupt through the memory manager in protected mode
SeeAlso: AX=2010h,AX=2011h

Top
812015 - INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
	AX = 2015h
	???
Return: ???

Top
8300 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 00h
	???
Return: CF clear (successful)
	AX = ??? (0302h)
Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
	  player by Josha Munnik

(Table 03976)
Values for JM Pro Tracker error code:
 000Ah	???
 000Bh	???
 0014h	???
 001Eh	some required parameters have not yet been set
 001Fh	already playing???
 FExxh	busy (API call already in progress)
 FFxxh	invalid function number

Top
8301 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 01h
	DX = ??? or FFFFh
	???
Return: CF clear if successful
	CF set on error
	    AX = error code (see #03976)

Top
8302 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 02h
	BX = ???
	???
Return: CF clear if successful
	    AX = ???
	    BX = ???
	    CX = ???
	    DX = ???
	    SI = ???
	CF set on error
	    AX = error code (000Ah,000Bh,other) (see #03976)

Top
8303 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 03h
	BX = ??? (only low four bits, must be nonzero)
	CX = ???
	???
Return: CF clear if successful
	CF set on error
	    AX = error code (0014h) (see #03976)

Top
8304 - INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
	AH = 04h
	CX = number of bytes in suggested buffer
	ES:DI -> suggested buffer for DMA transfers???
Return: CF clear if successful
	    ES:AX -> actual buffer (filled with bytes of 80h)
	    CX = actual length (multiple of 4)
	CF set on error
	    AX = error code (see #03976)
Note:	the buffer must not cross a 64K DMA page boundary

Top
8305 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
	AH = 05h
	CX = length of buffer
	ES:DI -> buffer for/containing ???
Return: CF clear (successful)
SeeAlso: AH=06h,AH=07h,AH=18h

Top
8306 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
	AH = 06h
	CX = length of buffer
	ES:DI -> buffer for/containing ???
Return: CF clear (successful)
SeeAlso: AH=05h,AH=07h,AH=18h

Top
8307 - INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
	AH = 07h
	BX = ???
	CX = length of buffer
	ES:DI -> buffer for/containing ???
Return: CF clear (successful)
SeeAlso: AH=05h,AH=06h,AH=18h

Top
8308 - INT 83 - JM Pro Tracker v5.0 - START PLAYING???
INT 83 - JM Pro Tracker v5.0 - START PLAYING???
	AH = 08h
	???
Return: CF clear if successful
	   ???
	CF set on error
	    AX = error code (001Eh,001Fh) (see #03976)
SeeAlso: AH=09h,AH=0Ah

Top
8309 - INT 83 - JM Pro Tracker v5.0 - PAUSE???
INT 83 - JM Pro Tracker v5.0 - PAUSE???
	AH = 09h
	???
Return: CF clear if successful
	CF set on error
	    AX = error code (see #03976)
SeeAlso: AH=08h,AH=0Ah

Top
830A - INT 83 - JM Pro Tracker v5.0 - RESUME???
INT 83 - JM Pro Tracker v5.0 - RESUME???
	AH = 0Ah
	???
Return: CF clear if successful
	CF set on error
	    AX = error code (001Fh) (see #03976)
SeeAlso: AH=08h,AH=09h

Top
830B - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 0Bh
	BX = ???
	???
Return: CF clear if successful
	CF set on error

Top
830C - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 0Ch
	DX bit 5 = ???
	???
Return: CF clear if successful
	    BX = ??? (FFFFh)
	    CX = ??? (0000h)
	    DX = ???
	CF set on error
	    AX = error code (see #03976)

Top
830D - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 0Dh
	BX = ???
	???
Return: CF clear (successful)

Top
830E - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 0Eh
	BX = ??? (ignored if ES:DI = 0000h:0000h)
	ES:DI -> ??? or 0000h:0000h
Return: CF clear (successful)

Top
830F - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 0Fh
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code (see #03976)

Top
8310 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 10h
	BL = subfunction???
	CX = ???
	DX = ???
	???
Return: CF clear if successful
	    CX = DX = ???
	CF set on error
	    AX = error code (see #03976)
SeeAlso: AH=18h

Top
8311 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 11h
	BL = ???
	CX = ???
Return: CF clear (successful)

Top
8312 - INT 83 - JM Pro Tracker v5.0 - CLEAR ???
INT 83 - JM Pro Tracker v5.0 - CLEAR ???
	AH = 12h
Return: nothing

Top
8313 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 13h
	BX = ???
Return: CF clear (successful)

Top
8314 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 14h
	???
Return: CF clear (successful)
	BX = ???

Top
8315 - INT 83 - JM Pro Tracker v5.0 - GET ???
INT 83 - JM Pro Tracker v5.0 - GET ???
	AH = 15h
	BX = what to get (zero/nonzero)
Return: CF clear if successful
	    BX = ???
	    DX = ???
	CF set on error
	    AX = error code (see #03976)

Top
8316 - INT 83 - JM Pro Tracker v5.0 - ???
INT 83 - JM Pro Tracker v5.0 - ???
	AH = 16h
	AL = subfunction
	    00h ???
		Return: BX = ???
			CX = ???
			DX = ???
			ES:DI -> ???
			CF indicates ???
	    01h ???
		Return: BX = ???
			CX = ???
			DX = ???
Return: CF clear if successful
	CF set on error
	    AX = error code (FFxxh) (see #03976)

Top
8317 - INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
	AH = 17h
Return: CF clear if successful
	CF set on error (hooked by another program)

Top
8318 - INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
	AH = 18h
	ES:DI -> buffer-pointer structure (see #03977)
Return: nothing
SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h

Format of JM Pro Tracker buffer-pointer structure:
Offset	Size	Description	(Table 03977)
 00h	WORD	length of ??? buffer (see AH=05h)
 02h	DWORD	-> ??? buffer (see AH=05h)
 06h	WORD	length of ??? buffer (see AH=06h)
 08h	DWORD	-> ??? buffer (see AH=06h)
 0Ch	WORD	length of ??? buffer (see AH=07h)
 0Eh	DWORD	-> ??? buffer (see AH=07h)
 12h	WORD	??? (see AH=07h)
 14h	WORD	??? (see AH=10h) (subfunction 01h)
 16h	WORD	??? (see AH=10h) (subfunction 01h)
 18h	WORD	??? (see AH=10h) (subfunction 00h)
 1Ah	WORD	??? (see AH=10h) (subfunction 01h)

Top
94----SI0000 - INT 94 u - PCM driver - INITIALIZE SOUND
INT 94 u - PCM driver - INITIALIZE SOUND
	SI = 0000h
	ES:BX -> parameters
Return: ???
Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
	  sound boards
InstallCheck:	test for the signature string "PCMDRIVER" immediately preceding
	  the interrupt handler; the word preceding the signature gives the PCM
	  driver's version
SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
Index:	installation check;PCM driver|PCM.COM;installation check
Index:	PCM driver;installation check

Top
94----SI0001 - INT 94 u - PCM driver - INITIALIZE PCM
INT 94 u - PCM driver - INITIALIZE PCM
	SI = 0001h
	ES:BX -> parameters
Return: ???
SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah

Top
94----SI0002 - INT 94 u - PCM driver - INITIALIZE PCM INFO
INT 94 u - PCM driver - INITIALIZE PCM INFO
	SI = 0002h
	ES:BX -> parameters (see #03997)
Return: ???
SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah

Format of PCM driver function 0002h parameters:
Offset	Size	Description	(Table 03997)
 00h	DWORD	rate
 04h	WORD	channel number
 06h	WORD	"comp"
 08h	WORD	"dsize"

Top
94----SI0003 - INT 94 u - PCM driver - INITIALIZE DMA BUFFER
INT 94 u - PCM driver - INITIALIZE DMA BUFFER
	SI = 0003h
	ES:BX -> parameters (see #03998)
Return: ???
SeeAlso: SI=0000h,SI=000Ah,SI=000Bh

Format of PCM driver function 0003h parameters:
Offset	Size	Description	(Table 03998)
 00h	DWORD	-> DMA buffer
 04h	WORD	size of DMA buffer
 06h	WORD	number of divisions

Top
94----SI0004 - INT 94 u - PCM driver - INITIALIZE USER FUNCTION
INT 94 u - PCM driver - INITIALIZE USER FUNCTION
	SI = 0004h
	ES:BX -> parameters (see #03999)
Return: ???
SeeAlso: SI=0000h,SI=0001h

Format of PCM driver function 0004h parameters:
Offset	Size	Description	(Table 03999)
 00h	DWORD	-> user function

Top
94----SI0005 - INT 94 u - PCM driver - BEGIN AUDIO PLAY
INT 94 u - PCM driver - BEGIN AUDIO PLAY
	SI = 0005h
Return: ???
SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h

Top
94----SI0006 - INT 94 u - PCM driver - BEGIN AUDIO RECORD
INT 94 u - PCM driver - BEGIN AUDIO RECORD
	SI = 0006h
Return: ???
SeeAlso: SI=0005h,SI=0007h,SI=0009h

Top
94----SI0007 - INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
	SI = 0007h
Return: ???
SeeAlso: SI=0005h,SI=0006h,SI=0008h

Top
94----SI0008 - INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
	SI = 0008h
Return: ???
SeeAlso: SI=0007h

Top
94----SI0009 - INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
	SI = 0009h
Return: ???
SeeAlso: SI=0005h,SI=0006h,SI=0007h

Top
94----SI000A - INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
	SI = 000Ah
Return: ???
SeeAlso: SI=0000h,SI=0001h,SI=0003h
Index:	uninstall;PCM driver

Top
94----SI000B - INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
	SI = 000Bh
	ES:BX -> parameters (see #04000)
Return: ???
SeeAlso: SI=0003h

Format of PCM driver functio 000Bh parameters:
Offset	Size	Description	(Table 04000)
 00h	DWORD	-> memory block to contain DMA buffer
 04h	WORD	desired size of DMA buffer

Top
94----SI000D - INT 94 u - Media Vision PCM.COM - GET STATUS
INT 94 u - Media Vision PCM.COM - GET STATUS
	SI = 000Dh
Return: AX = status (0000h = waiting) (see #04001)

Bitfields for PCM.COM status:
Bit(s)	Description	(Table 04001)
 0	playing
 1	recording
 2	SBplaying
 3	SBrecording
 14	SBpaused
 15	paused

Top
94----SI8000 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
	SI = 8000h
Return: DX:AX -> DMA buffer
Program: PCM.COM is a superset of the standard PCM driver which provides
	  additional functions for fine control of the driver
InstallCheck:	for the Media Vision PCM.COM "shark" functions, test for the
	  signature "PCM-SHARK" at offset 107h in the INT 94 handler's segment
SeeAlso: SI=8001h,SI=8004h
Index:	installation check;Media Vision PCM.COM|PCM.COM;installation check
Index:	Media Vision PCM.COM;"shark" functions

Top
94----SI8001 - INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
	SI = 8001h
Return: AX = DMA buffer size
	DX = divisions
SeeAlso: SI=8000h

Top
94----SI8002 - INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
	SI = 8002h
Return: AX = status
	    0000h if board not at specified I/O address
	    other if board found
Note:	the I/O address is specified by ORing the base I/O port shifted left
	  four bits into SI before calling INT 94
SeeAlso: SI=8000h

Top
94----SI8004 - INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
	SI = 8004h
Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
	DX = size of buffer in note structures
SeeAlso: SI=8000h

Top
94----SI8005 - INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
	SI = 8005h
Return: ???

Top
94----SI8011 - INT 94 u - Media Vision PCM.COM - INITIALIZE
INT 94 u - Media Vision PCM.COM - INITIALIZE
	SI = 8011h
	ES:BX -> "iobf91" structure
Return: ???

Top
94----SI8012 - INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
	SI = 8012h
	ES:BX -> "i94f92buf" structure
Return: ???
SeeAlso: SI=8013h,SI=8014h

Top
94----SI8013 - INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
	SI = 8013h
Return: AX = number of sounds used
	DX = maximum handles

Top
94----SI8014 - INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
	SI = 8014h
	ES:BX -> "i94f92buf" structure to be filled in
		sound number field set to desired sound
Return: AX = status
	    0000h successful
	    FFFFh sound number out of range
SeeAlso: SI=8012h,SI=8013h

Top
94----SI8015 - INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
	SI = 8015h
	ES:BX -> DMA info structure (see #04002)
Return: ???

Format of PCM.COM DMA info structure:
Offset	Size	Description	(Table 04002)
 00h	DWORD	-> DMA buffer (offset FFFFh = return current buffer info)
 04h	WORD	DMA buffer size
 06h	WORD	divisions

Top
94----SI8016 - INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
	SI = 8016h
	AX = hotkey number (01h-08h)
Return: ???
SeeAlso: AL=02h/SI=8017h

Top
94--01SI8017 - INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
	AL = 01h
	SI = 8017h
	AH = new state (00h off, 01h on)
Return: ???
SeeAlso: AL=02h/SI=8017h

Top
94--02SI8017 - INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
	AL = 02h
	SI = 8017h
	AH = new state (00h off, 01h on)
Return: ???

Top
94--04SI8017 - INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
	AL = 04h
	SI = 8017h
	AH = new state
	    00h off
	    01h on
		CX = minimum delay
		DX = maximum delay
Return: ???

Top
94--08SI8017 - INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
	AL = 08h
	SI = 8017h
	AH = new state
	    00h off
	    01h on
		DX:CX = delay
Return: ???
SeeAlso: AL=10h/SI=8017h

Top
94--10SI8017 - INT 94 u - Media Vision PCM.COM - TIMER CONTROL
INT 94 u - Media Vision PCM.COM - TIMER CONTROL
	AL = 10h
	SI = 8017h
	AH = timer options (see #04003)
	DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
Return: ???
SeeAlso: AL=08h/SI=8017h

Bitfields for PCM.COM timer options:
Bit(s)	Description	(Table 04003)
 7	set timer
 6	timer active (timer turned off if clear)
 5-0	timer number

Top
94----SI8018 - INT 94 u - Media Vision PCM.COM - GET INFO
INT 94 u - Media Vision PCM.COM - GET INFO
	SI = 8018h
	AL = what to get
	    00h "F92state"
	    01h "F92bkgd"
	    02h "I10timer"
	    03h "I08state"
Return: DX:AX -> desired information

Top
F1 - INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
	DS:BX -> '$'-terminated text string
Return: nothing
Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco

Top
F1 - INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
SeeAlso: INT F2"SPEECH"

Top
F2 - INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
SeeAlso: INT F1"SPEECH"

Top
F3 - INT F3 - SoundBlaster - POINTER TO ECHO VALUE
INT F3 - SoundBlaster - POINTER TO ECHO VALUE
Note:	this is not a vector, but a pointer to a DWORD containing the echo
	  value selected with SET-ECHO.EXE
SeeAlso: INT 2F/AX=FBFBh/ES=0000h

Top
Home Interrupt Index: by Category by ID TOC: by Order Top