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.
 
 
 
 
 
 

64 lines
1.6 KiB

/***************************************************************************
*
* 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
);