home *** CD-ROM | disk | FTP | other *** search
- // 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
- uchar _SR06; // Preserve original SR06 value
- 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 )
- { _SR06 = read_CR( 0x06 ); // Preserve original SR06 value
- write_SR( 0x06, 0x12 ); }; // Unlock Cirrus SVGA registers
- ~_cirrus()
- { write_SR( 0x06, _SR06 ); };
- };
-
-
- 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
- };
-
-
- class _GD5462 : public vga { // Cirrus-Logic family GD546x
- // Note, all GD-546X are PCI-only devices
- protected:
- uchar far *framebuffer; // Pointer to VGA framebuffer at A000:0000
- dword baseio; // Store old mmio base address (PCICFG$10) 32-bit
- word pci_command; // Store old pci-command register (PCICFG$04)16-bit
- uchar read_base0( uint offset ); // Read byte from { BA0 + offset }
- void write_base0( uint offset, uchar value ); // Write byte to ...
- uchar read_cbyte( const uchar index );
- // Read PCI-configuration register, index 0-255
- uchar write_cbyte( const uchar index, const uchar value );
- // Write value -> PCI-config(index)
- uchar get_mclkbyte( void );
- // Get MCLK frequency from registers
- public:
- message _info( void ); // Return silicon Revision#
- void _mclk( int cmd ); // MCLK programming function
- pci_bios_type *pci_bios; // Needed for PCI autodetect routine
- pci_device_handle_type pci_vga; // Needed for PCI autodetect
-
- _GD5462( vga_info info );// Constructor
- ~_GD5462(); // Destructor
-
- };
-
- class _GD5464 : public _GD5462 { // Cirrus-Logic GD-5464
- // GD-5464 adds bus-master control
- protected:
- public:
- void _fxn2( int cmd ); // PCI Master Latency Timer
- _GD5464( vga_info info ) : _GD5462( info )
- {;}; // Null constructor
- };
-