INT 10 - VESA(Video Electronics Standards Association) An industry group which sets both hardware and software standards and recommendations. The term VESA is also used to denote compliance with the VESA SuperVGA BIOS Extensions, a standard set of video BIOS functions for accessing video modes of higher resolution than those defined by IBMInternational Busiuness Machines. VBE(VESA BIOS Extensions) The common software interface for video cards providing support for high resolution and bit depth./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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length 08h WORD type of device (1=Wave, 2=MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer.) 0Ah WORD version of VESA(Video Electronics Standards Association) An industry group which sets both hardware and software standards and recommendations. The term VESA is also used to denote compliance with the VESA SuperVGA BIOS Extensions, a standard set of video BIOS functions for accessing video modes of higher resolution than those defined by IBMInternational Busiuness Machines. 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(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. device: MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. Info Structure (see #00118) first 8 bytes of MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. Service Structure ??? SeeAlso: #00122,#00124 Format of WAVE Info Structure: Offset Size Description (Table 00113) 00h 4 BYTEs name of the structure ("WAVI") 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length [0000007Eh] 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. driver software version [00000003h] 0Ch 32 BYTEs vendor name, etc. (ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length 08h 16 BYTEs for future expansion ---entry points (details???)--- 18h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. DeviceCheck 11h compression (see also #00117) 12h driver state 13h get current pos 14h sample rate 15h set preference 16h get DMAsee Direct Memory Access,IRQ(Interrupt ReQuest) A hardware line connected to the interrupt controller chip which signals that a CPU interrupt should be generated. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. PCMInfo 20h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. PlayBlock 24h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. PlayCont 28h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. RecordBlock 2Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. RecordCont 30h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. PauseIO 34h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ResumeIO 38h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. StopIO 3Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. WavePrepare 40h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. WaveRegister 44h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. GetLastError 01h unsupported feature/function 02h bad sample rate 03h bad block length 04h bad block address 05h app. missed an IRQ(Interrupt ReQuest) A hardware line connected to the interrupt controller chip which signals that a CPU interrupt should be generated. 06h don't understand the PCM size/format 80h-.. vendors specific errors 48h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. TimerTick 4Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ApplPSyncCB: CallBack: play filled in by the app 50h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. Info Structure: Offset Size Description (Table 00118) 00h 4 BYTEs name of the structure ("MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer.") 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. driver software version [00000003h] 0Ch 32 BYTEs vendor name, etc. (ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. feature bits: Bit(s) Description (Table 00119) 0-3 reserved for GM extensions 4 Transmitter/Receiver only 5 Patches preloaded 6 MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. receive has time stamp 8 MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. interrupt driven input supported 9 MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. polled input supported 10 MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. remote patches supported Format of MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. Service structure: Offset Size Description (Table 00120) 00h 4 BYTEs name of the structure ("MIDS") 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length 08h 16 WORDs patches loaded table bit field 28h 16 BYTEs for future expansion ---entry points (details???)--- 38h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DMAsee Direct Memory Access,IRQ(Interrupt ReQuest) A hardware line connected to the interrupt controller chip which signals that a CPU interrupt should be generated. 17h get IO address 18h get mem address 19h get mem free 80h-.. vendors can add DevChks above 0x80 3Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. global reset 40h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. msg 44h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. poll MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. 48h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. preload patch 4Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unload patch 50h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. timer tick 54h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. Patch Block free callback 5Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. byte avail. callback SeeAlso: #00116,#00124 (Table 00121) Values for MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length (00000092h) 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. driver software version [00000001h] 0Ch 32 BYTEs vendor name, etc. (ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. structure length (00000038h) 08h 16 BYTEs 16 bytes for future expansion (0) ---entry points (details???)--- 18h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. set vol to an absolute setting 01h User master volume setting 02h application master volume setting 20h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. set 3D volume 24h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. tone control 28h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. filter control 2Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. output path 30h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. reset channel 34h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. get last error 01h unsupported feature/function 02h out of range parameter value 80h+ vendor-specific errors SeeAlso: #00116,#00120