// 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 };