/***************************************************************************
*	NAME:  GF1OS.H
**	COPYRIGHT:
**	"Copyright (c) 1992, by FORTE
**
**       "This software is furnished under a license and may be used,
**       copied, or disclosed only in accordance with the terms of such
**       license and with the inclusion of the above copyright notice.
**       This software or any other copies thereof may not be provided or
**       otherwise made available to any other person. No title to and
**       ownership of the software is hereby transfered."
****************************************************************************
*  CREATION DATE: 08/01/92
*--------------------------------------------------------------------------*
*     VERSION	DATE	   NAME		DESCRIPTION
*>	1.0	08/01/92		Original
***************************************************************************/

#define NEXT_OFFSET		0L
#define PREV_OFFSET		4L
#define SIZE_OFFSET		8L
#define MEM_HEADER_SIZE SIZE_OFFSET+4L

#define ULTRA_PRESENT	0x0001		/* show this card is present */
#define	DRAM_DMA_BUSY	0x0002		/* show this channels dram dma is busy */
#define ADC_DMA_BUSY	0x0004		/* show we are busy recording */
#define DRAM_DMA_NOWAIT	0x0008		/* show we didn't wait last time */
#define ADC_DMA_NOWAIT	0x0010		/* show we didn't wait last time */

#define READ_DMA		1
#define WRITE_DMA		2
#define INDEF_READ		3	/* auto init record */
#define INDEF_WRITE		4	/* auto init record */

typedef struct {
	unsigned int flags;
	unsigned int base_port;
	unsigned int dram_dma_chan;
	unsigned int adc_dma_chan;
	unsigned int gf1_irq_num;
	unsigned int midi_irq_num;
	PVI		old_gf1_vec;
	PVI		old_midi_vec;
	PFV		midi_xmit_func;
	PFV		midi_recv_func;
	PFV		timer1_func;
	PFV		timer2_func;
	PFV		wavetable_func;
	PFV		volume_func;
	PFV		dram_dma_tc_func;
	PFV		record_dma_tc_func;
	PFV		aux_irq_func;
	unsigned char	mix_image;
	unsigned char	voices;
	unsigned char	image_midi;
	unsigned long	used_voices;
	unsigned long 	reserved_dram;
	unsigned long 	free_mem;
	unsigned char	timer_ctrl;
	unsigned char	timer_mask;
	int		midi_data;
	int		midi_control;
	int		voice_select;
	int		reg_select;
	int		data_low;
	int		data_hi;
	int		irq_status;
	int		dram_data;
	int		mix_control;
	int		irq_control;
	int		timer_control;
	int		timer_data;
	int		ultra_errno;
	int		gf1_sema4;
	int		irq_pending;
} ULTRA_DATA;


