S3Trio64.cpp File Reference


Detailed Description

Contains the code for emulated S3 Trio 64 Video Card device.

Id
S3Trio64.cpp,v 1.18 2008/03/25 10:20:35 iamcamiel Exp

X-1.18 Camiel Vanderhoeven 25-MAR-2008 Added comments on VGA registers.

X-1.17 Camiel Vanderhoeven 16-MAR-2008 Fixed threading problems with SDL (I hope).

X-1.16 Camiel Vanderhoeven 14-MAR-2008 Formatting.

X-1.15 Camiel Vanderhoeven 14-MAR-2008 1. More meaningful exceptions replace throwing (int) 1. 2. U64 macro replaces X64 macro.

X-1.14 Camiel Vanderhoeven 13-MAR-2008 Create init(), start_threads() and stop_threads() functions.

X-1.13 Camiel Vanderhoeven 05-MAR-2008 Multi-threading version.

X-1.12 Brian Wheeler 27-FEB-2008 Avoid compiler warnings.

X-1.11 Fang Zhe 08-JAN-2008 Endianess.

X-1.10 Camiel Vanderhoeven 02-JAN-2008 Cleanup.

X-1.9 Camiel Vanderhoeven 30-DEC-2007 Print file id on initialization.

X-1.8 Camiel Vanderhoeven 28-DEC-2007 Throw exceptions rather than just exiting when errors occur.

X-1.7 Camiel Vanderhoeven 28-DEC-2007 Keep the compiler happy.

X-1.6 Camiel Vanderhoeven 17-DEC-2007 SaveState file format 2.1

X-1.5 Brian Wheeler 10-DEC-2007 Made refresh function name unique.

X-1.4 Camiel Vanderhoeven 10-DEC-2007 Use new base class VGA.

X-1.3 Camiel Vanderhoeven 7-DEC-2007 Code cleanup.

X-1.2 Camiel Vanderhoeven/Brian Wheeler 6-DEC-2007 Changed implementation (with thanks to the Bochs project!!)

X-1.1 Camiel Vanderhoeven 1-DEC-2007 Initial version in CVS.

Definition in file S3Trio64.cpp.

#include "StdAfx.h"
#include "S3Trio64.h"
#include "System.h"
#include "AliM1543C.h"
#include "gui/gui.h"

Go to the source code of this file.

Defines

#define SET_TILE_UPDATED(xtile, ytile, value)
 Set a specific tile's updated variable.
#define GET_TILE_UPDATED(xtile, ytile)   ((((xtile) < BX_NUM_X_TILES) && ((ytile) < BX_NUM_Y_TILES)) ? state.vga_tile_updated[(xtile)][(ytile)] : 0)
 Get a specific tile's updated variable.

Variables

static unsigned old_iHeight = 0
static unsigned old_iWidth = 0
static unsigned old_MSL = 0
static const u8 ccdat [16][4]
static unsigned int rom_max
 Size of ROM image.
static u8 option_rom [65536]
 ROM image.
static u32 s3_cfg_data [64]
 PCI Configuration Space data block.
static u32 s3_cfg_mask [64]
 PCI Configuration Space mask block.
static u32 s3_magic1 = 0x53338811
static u32 s3_magic2 = 0x88115333


Define Documentation

#define GET_TILE_UPDATED ( xtile,
ytile   )     ((((xtile) < BX_NUM_X_TILES) && ((ytile) < BX_NUM_Y_TILES)) ? state.vga_tile_updated[(xtile)][(ytile)] : 0)

Get a specific tile's updated variable.

Only reference the array if the tile numbers are within the bounds of the array. If out of bounds, return 0.

Definition at line 133 of file S3Trio64.cpp.

#define SET_TILE_UPDATED ( xtile,
ytile,
value   ) 

Value:

do                                                             \
  {                                                              \
    if(((xtile) < BX_NUM_X_TILES) && ((ytile) < BX_NUM_Y_TILES)) \
      state.vga_tile_updated[(xtile)][(ytile)] = value;          \
  } while(0)
Set a specific tile's updated variable.

Only reference the array if the tile numbers are within the bounds of the array. If out of bounds, do nothing.

Definition at line 120 of file S3Trio64.cpp.


Variable Documentation

const u8 ccdat[16][4] [static]

Initial value:

 {
  {0x00, 0x00, 0x00, 0x00},
  {0xff, 0x00, 0x00, 0x00},
  {0x00, 0xff, 0x00, 0x00},
  {0xff, 0xff, 0x00, 0x00},
  {0x00, 0x00, 0xff, 0x00},
  {0xff, 0x00, 0xff, 0x00},
  {0x00, 0xff, 0xff, 0x00},
  {0xff, 0xff, 0xff, 0x00},
  {0x00, 0x00, 0x00, 0xff},
  {0xff, 0x00, 0x00, 0xff},
  {0x00, 0xff, 0x00, 0xff},
  {0xff, 0xff, 0x00, 0xff},
  {0x00, 0x00, 0xff, 0xff},
  {0xff, 0x00, 0xff, 0xff},
  {0x00, 0xff, 0xff, 0xff},
  {0xff, 0xff, 0xff, 0xff},
}

Definition at line 95 of file S3Trio64.cpp.

unsigned old_iHeight = 0 [static]

Definition at line 93 of file S3Trio64.cpp.

unsigned old_iWidth = 0 [static]

Definition at line 93 of file S3Trio64.cpp.

unsigned old_MSL = 0 [static]

Definition at line 93 of file S3Trio64.cpp.

u8 option_rom[65536] [static]

ROM image.

Definition at line 185 of file S3Trio64.cpp.

unsigned int rom_max [static]

Size of ROM image.

Definition at line 182 of file S3Trio64.cpp.

u32 s3_cfg_data[64] [static]

Initial value:

 {
   0x88115333,            
   0x011f0000,            
   0x03000002,            
   0x00000000,            
   0xf8000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,
   0x281401ff,            
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
PCI Configuration Space data block.

Definition at line 188 of file S3Trio64.cpp.

Referenced by CS3Trio64::init().

u32 s3_cfg_mask[64] [static]

Initial value:

 {
   0x00000000,            
   0x0000ffff,            
   0x00000000,            
   0x0000ffff,            
   0xfc000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,            
   0x00000000,
   0x000000ff,            
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
PCI Configuration Space mask block.

Definition at line 211 of file S3Trio64.cpp.

Referenced by CS3Trio64::init().

u32 s3_magic1 = 0x53338811 [static]

Definition at line 509 of file S3Trio64.cpp.

Referenced by CS3Trio64::RestoreState(), and CS3Trio64::SaveState().

u32 s3_magic2 = 0x88115333 [static]

Definition at line 510 of file S3Trio64.cpp.

Referenced by CS3Trio64::RestoreState(), and CS3Trio64::SaveState().


SourceForge.net Logo
Project space on SourceForge.net