SB AWE32 Developer's Information Pack
PART II DOS Real/Protected Mode API
••
33
Copyright
Creative Technology Ltd., 1994-1996
Version 3.00
DATA Start
int* __sbkload_code()
DATA End
int* __sbkload_ecode()
WAVLOAD.OBJ
CODE Start
__wavload_code()
CODE End
__wavload_ecode()
DATA Start
int* __wavload_code()
DATA End
int* __wavload_ecode()
NRPN.OBJ
CODE Start
__nrpn_code()
CODE End
__nrpn_ecode()
DATA Start
int* __nrpn_code()
DATA End
int* __nrpn_ecode()
MIDIVAR.OBJ
DATA Start
__midivar_data
DATA End
__midivar_edata
NRPNVAR.OBJ
DATA Start
__nrpnvar_data
DATA End
__nrpnvar_edata
EMBED.OBJ
DATA Start
__embed_data
DATA End
__embed_edata
For applications that require the starting and ending addresses of each file module, they can be obtained
as follows:
// midieng.obj
void* code_start = (void*) __midieng_code;
void* code_end = (void*) __midieng_ecode;
void* data_start = (void*) __midieng_code();
void* data_end = (void*) __midieng_ecode();
For users who are developing drivers that make use of hardware interrupts in protected mode, all
modules except HARDWARE.OBJ and SBKLOAD.OBJ and any additional preset buffers must be page
locked. If NRPN is not used, NRPN.OBJ and NRPNVAR.OBJ can be omitted.
Significance of awe32NumG variable
If you intend to use only the ROM (i.e., General MIDI) instruments, you can set awe32NumG to 32 and
you will be using the full 32 oscillators on the EMU8000 subsystem.
If you plan to use both ROM sound and DRAM instruments/sound effects, or instruments/sound effects
from DRAM only, you have to set awe32NumG to 30, i.e., using only 30 oscillators on the EMU8000
subsystem. The remaining 2 oscillators have to be used for DRAM memory refresh. Failure to do so may
result in the DRAM sound being playback incorrectly.
Enable real-time panning using awe32RTimePan variable
If you intend to use real-time panning, you could now enable it by setting awe32RTimePan to 1. The
option is disabled by default because of the limitation in the EMU8000 hardware. The left and right
volumes are not interpolated in real-time. As a result, if the pan positions are updated in real-time,