X-1.21 Pepito Grillo 25-MAR-2008 Fixed a typo in the last patch.
X-1.20 Camiel Vanderhoeven 24-MAR-2008 Added comments on VGA registers.
X-1.19 Camiel Vanderhoeven 16-MAR-2008 Fixed threading problems with SDL (I hope).
X-1.18 Camiel Vanderhoeven 14-MAR-2008 Formatting.
X-1.17 Camiel Vanderhoeven 14-MAR-2008 1. More meaningful exceptions replace throwing (int) 1. 2. U64 macro replaces X64 macro.
X-1.16 Camiel Vanderhoeven 13-MAR-2008 Create init(), start_threads() and stop_threads() functions.
X-1.15 Camiel Vanderhoeven 05-MAR-2008 Multi-threading version.
X-1.14 Brian Wheeler 27-FEB-2008 Avoid compiler warnings.
X-1.13 David Leonard 20-FEB-2008 Shut down refresh thread when emulator exits.
X-1.12 David Leonard 20-FEB-2008 Avoid 'Xlib: unexpected async reply' errors on Linux/Unix/BSD's by adding some thread interlocking.
X-1.11 Camiel Vanderhoeven 03-JAN-2008 Attempt to get this working for big-endian host architectures.
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 Camiel Vabderhoeven 11-DEC-2007 Don't claim IO addresses 3d0..3d3, 3d6..3d9 and 3db..3df.
X-1.4 Camiel Vabderhoeven 11-DEC-2007 Don't claim IO addresses 3b0..3b3, 3b6..3b9 and 3bb.
X-1.3 Brian Wheeler 10-DEC-2007 Made refresh function name unique.
X-1.2 Camiel Vanderhoeven 10-DEC-2007 Don't decode IO addresses 3bc-3bf.
X-1.1 Camiel Vanderhoeven 10-DEC-2007 Initial version in CVS.
Definition in file Cirrus.cpp.
#include "StdAfx.h"
#include "Cirrus.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 | cirrus_cfg_data [64] |
| PCI Configuration Space data block. | |
| static u32 | cirrus_cfg_mask [64] |
| PCI Configuration Space mask block. | |
| static u32 | cirrus_magic1 = 0xC1AA4500 |
| static u32 | cirrus_magic2 = 0x0054AA1C |
| #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 143 of file Cirrus.cpp.
Referenced by CS3Trio64::update(), and CCirrus::update().
| #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)
Only reference the array if the tile numbers are within the bounds of the array. If out of bounds, do nothing.
Definition at line 130 of file Cirrus.cpp.
Referenced by CS3Trio64::redraw_area(), CCirrus::redraw_area(), CS3Trio64::update(), CCirrus::update(), CS3Trio64::vga_mem_write(), and CCirrus::vga_mem_write().
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 105 of file Cirrus.cpp.
Referenced by CS3Trio64::vga_mem_read(), and CCirrus::vga_mem_read().
u32 cirrus_cfg_data[64] [static] |
Initial value:
{
0x00a81013,
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
}
Definition at line 198 of file Cirrus.cpp.
Referenced by CCirrus::init().
u32 cirrus_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
}
Definition at line 221 of file Cirrus.cpp.
Referenced by CCirrus::init().
u32 cirrus_magic1 = 0xC1AA4500 [static] |
Definition at line 518 of file Cirrus.cpp.
Referenced by CCirrus::RestoreState(), and CCirrus::SaveState().
u32 cirrus_magic2 = 0x0054AA1C [static] |
Definition at line 519 of file Cirrus.cpp.
Referenced by CCirrus::RestoreState(), and CCirrus::SaveState().
unsigned old_iHeight = 0 [static] |
Definition at line 103 of file Cirrus.cpp.
Referenced by CS3Trio64::redraw_area(), CCirrus::redraw_area(), CS3Trio64::update(), CCirrus::update(), CS3Trio64::write_b_3c9(), CCirrus::write_b_3c9(), CS3Trio64::write_b_3cf(), CCirrus::write_b_3cf(), CS3Trio64::write_b_3d5(), and CCirrus::write_b_3d5().
unsigned old_iWidth = 0 [static] |
Definition at line 103 of file Cirrus.cpp.
Referenced by CS3Trio64::redraw_area(), CCirrus::redraw_area(), CS3Trio64::update(), CCirrus::update(), CS3Trio64::write_b_3c9(), CCirrus::write_b_3c9(), CS3Trio64::write_b_3cf(), CCirrus::write_b_3cf(), CS3Trio64::write_b_3d5(), and CCirrus::write_b_3d5().
unsigned old_MSL = 0 [static] |
Definition at line 103 of file Cirrus.cpp.
Referenced by CS3Trio64::update(), and CCirrus::update().
u8 option_rom[65536] [static] |
ROM image.
Definition at line 195 of file Cirrus.cpp.
Referenced by CS3Trio64::init(), CCirrus::init(), CS3Trio64::rom_read(), and CCirrus::rom_read().
unsigned int rom_max [static] |
Size of ROM image.
Definition at line 192 of file Cirrus.cpp.
Referenced by CS3Trio64::init(), CCirrus::init(), CS3Trio64::rom_read(), and CCirrus::rom_read().