INT 78 - ULTRAMID - API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running.  Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes.
	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 PCIBM PC buffer
	    0009h get voice status (not yet implemented)
	--- MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. functions ---
	    000Ah load MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. patches
		ES:DI -> MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. track just after the Mtrk header
		BX:DX = length of MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. track
	    000Bh load XMIDI patches
		ES:DI -> event buffer including the EVNT header
	    000Ch load patch
		CX = MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. number of patch
	    000Dh unload patch
		CX = MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. number of patch
	    000Eh start sequence
	    000Fh unload all patches
	    0010h MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. out byte
		CX = MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. byte
	    0011h MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. out string
		CX = length
		ES:DI -> string of MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. 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(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. from Advanced Gravis to play MIDI(Musical Instrument Digital Interface) A standardized interface for controlling musical instruments with a computer. 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