Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/***************************************************************************
* * fm.h * * Copyright (c) 1991-1996 Microsoft Corporation. All Rights Reserved. * * This code provides VDD support for SB 2.0 sound output, specifically: * FM Chip OPL2 (a.k.a. Adlib) * ***************************************************************************/
/*****************************************************************************
* * #defines * *****************************************************************************/
/*
* OPL2/Adlib Ports */
#define ADLIB_REGISTER_SELECT_PORT 0x388 // select the register to write data
#define ADLIB_STATUS_PORT 0x388 // read to determine opl2 status
#define ADLIB_DATA_PORT 0x389 // write data port
/*
* FM information */
#define AD_MASK 0x04 // adlib register used to control opl2
#define AD_NEW 0x105 // used to determine if app entering opl3 mode
#define BATCH_SIZE 40 // how much data is batched to opl2
typedef struct { // structure written to fm device
unsigned short IoPort; unsigned short PortData; } SYNTH_DATA, *PSYNTH_DATA;
/*****************************************************************************
* * Function Prototypes * *****************************************************************************/
void ResetFM(void); BOOL OpenFMDevice(void); void CloseFMDevice(void); BOOL FMPortWrite(void);
VOID FMDataWrite( BYTE data );
VOID FMRegisterSelect( BYTE data );
VOID FMStatusRead( BYTE *data );
|