Metropoli BBS
VIEWER: cirrus.h MODE: TEXT (ASCII)
//	Cirrus Logic header file cirrus.h
//
//	Contains class definitions for Cirrus Logic GD-54xx video boards
//
//

//	The following line denies outside code access to certain
//	member functions of class vga.
#define __cirrus_h
#include "vga.h"


class _cirrus : public vga	{		// Cirrus-Logic family GD542x/3x
protected:
	double get_mclkfreq( void )
		{	return( _OSC * ( read_SR( 0x1F ) & 0x3F ) / 8.0 );	};
		//	Get MCLK frequency from registers
public:
	message _info( void );		//	Return silicon Revision#
	void _mclk( int cmd );		//	MCLK programming function
//	void _fxn1( int cmd );		//	MCLK timing (read-only)
	_cirrus( vga_info info ) : vga( info )
		{	write_SR( 0x06, 0x12 );	};	// Unlock Cirrus SVGA registers
};


class _GD5424 : public _cirrus	{	//Cirrus-Logic GD-5424 - 5428
protected:
public:
	_GD5424( vga_info info ) : _cirrus( info )
		{;};	//	Null Constructor
	void _fxn2( int cmd );	//	IO RDY delay...local-bus only!
	void _fxn3( int cmd );	//   RDY mem-write...local-bus only!
//	void _fxn5( int cmd );	//   FIFO threshold...local-bus only!
//	^^^^ removed, because Cirrus BIOS reprograms threshold for every mode!
};


class _GD543x : public _GD5424 {		// Cirrus-Logic 5430
protected:
public:
	_GD543x( vga_info info ) : _GD5424( info )
		{;};	// Null constructor
	void _fxn2( int cmd );	//	IO LRDY delay...VL-bus only!
	void _fxn3( int cmd );	//   LRDY mem-read/write delays...VL-bus only!
};


class _GD5434 : public _GD543x {		// Cirrus-Logic GD-5434
protected:
public:
	void _mclk( int cmd );		//	MCLK programming function
	_GD5434( vga_info info ) : _GD543x( info )
		{;};	// Null constructor
};


class _GD5436 : public _GD543x {		// Cirrus-Logic GD-5436, v084
protected:
public:
	_GD5436( vga_info info ) : _GD543x( info )
		{;};	// Null constructor
	void _fxn1( int cmd );	//	Enable 8-MCLK EDO timing
	void _fxn2( int cmd );	//	Single Cycle RAM refresh timing
};
[ RETURN TO DIRECTORY ]